Настройка виртуального каталога при использовании 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