Может ли ASP.MVC 3 запускаться в корне сайта и разрешать другие ASP.Сетевые приложения должны запускаться во вложенных папках?

#asp.net-mvc #iis #asp.net-mvc-3

#asp.net-mvc #iis #asp.net-mvc-3

Вопрос:

Могу ли я запустить приложение ASP.MVC 3 в корне моего сайта (простая CMS для предоставления БОЛЬШЕЙ части содержимого сайта), и чтобы оно сосуществовало с дополнительным ASP.Сетевые приложения (2 приложения Web Forms и 1 приложение MVC), работающие во вложенных папках, обеспечивают более специализированную функциональность?

Пример:

 www.mycompany.com
/             // ASP.MVC 3 App goes here to handle 90% of our page content.
/store/       // Older web forms app to handle our online store.
/survey/      // Older web forms app to provide survey forms.
/locations/   // An ASP.MVC 3 app to render a map with site locations.
  

Я бы не возражал против интеграции MVC-приложения ‘locations’ с CMS, если это необходимо, но если они могут быть отдельными, это упростило бы долгосрочное обслуживание. Нужно ли корневому приложению знать об остальных? (включая другие проекты в качестве подпроектов в основной проект MVC в версии 2010?)

Что касается приложений веб-форм «магазин» и «опрос». Они работают под управлением .Net 3.5, но при необходимости мы могли бы перекомпилировать их до версии 4.0. Должны ли папки ‘store’, ‘survey’ и ‘locations’ быть виртуальными папками, сопоставленными с IIS?

Надеюсь, этот пример достаточно упрощен, чтобы выяснить, возможно ли (и как) интегрировать приложения вместе с ASP.MVC 3, запущенным в корне сайта. Я нахожусь в ситуации, когда отдельные приложения должны совместно использовать домен и притворяться единым сайтом. (Все они будут использовать один и тот же HTML-шаблон)

Ответ №1:

Просто отметьте эти другие приложения как приложения в IIS, и этого будет достаточно.

Ответ №2:

Не напрямую — как мне кажется, вы будете вести неприятные битвы IIS всю неделю. Возможно, вы сможете добраться туда в конечном итоге, но это будет некрасиво. Здесь есть два возможных подхода:

a) Поместите все это за обратный прокси, который передает трафик на соответствующий сервер (или виртуальный сервер). Недостатком является то, что вам, возможно, придется немного пошалить, чтобы убедить IIS, что ваш магазин работает вhttp://www.example.com/store вместо http://localhost:666/store но это выполнимо.

б) Попробуйте включить старые приложения webforms в ваше приложение MVC cms. На самом деле зависит от множества особенностей, но может быть так же просто, как установить игнорируемый маршрут и соответствующим образом настроить конфигурацию.