Настройка виртуального каталога при использовании IIS для отладки ASP.NET MVC

Я пытаюсь использовать IIS для отладки ASP.NET MVC в Visual Studio. Проблема в том, что если я выбираю "Использовать локальный веб-сервер IIS" в Visual Studio, мне нужно выбрать виртуальный каталог, например http://localhost/myapp/

Это проблема, поскольку предполагается, что приложение ASP.NET MVC запускается из корневого каталога, а MVC будет анализировать "myapp" в качестве контроллера, а когда я запустил приложение из Visual Studio/IIS, последующие запросы будут в любом случае, направленное к корню.

Как решить эту проблему? Есть ли способ использовать корень сайта IIS вместо виртуального каталога для отладки Visual Studio?

Ответ 1

Да, вы можете запустить ASP.NET MVC в качестве корневого приложения.

Просто используйте диспетчер IIS, чтобы установить домашний каталог для веб-сайта в свой путь к вашему приложению.

Затем внесите соответствующие изменения на вкладке "Веб" ваших параметров проекта для MVC в Visual Studio.

Предполагается, что для IIS уже установлена ​​правильная настройка файлов Windows.

Ответ 2

Вы говорите, что

Предполагается, что приложение ASP.NET MVC запускается из корневого каталога, а MVC будет анализировать "myapp" как контроллер

Однако можно запустить ASP.NET MVC из виртуального каталога, добавив подстановочное сопоставление, как описано в этой статье:

ASP.NET MVC в прохождении IIS 6

См. также этот вопрос здесь, в stackoverflow, и принятый ответ, в котором описаны шаги, которые следует предпринять для решения аналогичная проблема:

ASP.NET MVC Как использовать маршруты, когда приложение опубликовано как SubProject домена?

Ответ 3

Перейдите к свойствам вашего сайта (в меню "Проект" ). Выберите веб-вкладку внизу и введите имя виртуального каталога, которое вы используете в IIS, в поле виртуального пути. Это может решить вашу проблему.

Ответ 4

Вы также можете использовать Debug- > Attach to Process из Visual Studio вместо Start Debugging.

Присоединитесь к aspnet_wp.exe, и вы сможете отлаживать свое приложение MVC независимо от того, находится ли он в виртуальном каталоге.

Ответ 5

Переработка URL-адресов может помочь вам решить проблему. Я реализовал решение, позволяющее развертывать приложение MVC в любой версии IIS, даже если используется виртуальный хостинг. http://www.codeproject.com/KB/aspnet/iis-aspnet-url-rewriting.aspx