Не удается запустить веб-приложение ASP.NET MVC 2 на IIS 7.5
Я пытаюсь запустить веб-приложение ASP.NET MVC 2 под IIS в Windows 7, но получаю ошибку 403.14. Вот шаги для воспроизведения:
- Откройте Visual Studio 2010
- Создайте новый проект ASP.NET MVC 2 под названием MvcApplication1
- Shift + F5, чтобы запустить приложение. Вы должны увидеть
http://localhost:{random_port}/
и страница будет отображаться правильно. - Нажмите на MvcApplication1 и выберите "Свойства". Перейдите в раздел "Сеть".
- Выберите "Использовать локальный веб-сервер IIS" и создайте виртуальный каталог.
- Сохранить.
- Shift + F5, чтобы запустить приложение. Вы должны увидеть
http://localhost/MvcApplication1/
и ошибку IIS HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory.
,
Понятно, что по какой-то причине маршрутизация ASP.NET работает неправильно.
Вещи, о которых я уже подумал и попробовал:
- Убедитесь, что все функции IIS включены в "Включение или отключение функций Windows".
- Проверено, что веб-сайт по умолчанию настроен на использование .NET 4.0
- Переназначил сценарии ASP.NET v4 через
aspnet_regiis -i
в каталоге v4.0.30319
.
Здесь самая удивительная часть - это только что построенная машина. Новая копия Windows 7 x64 Окончательная, чистая установка Visual Studio 2010 Premium, никаких других веб-сайтов и никакой другой работы.
Что-нибудь еще я могу попробовать?
![Setting Visual Studio to use local IIS web server]()
Ответы
Ответ 1
Хорошо, это разрешено для меня, делая следующее:
Запуск aspnet_regiis -i
в 32-разрядном каталоге c:\Windows\Microsoft.NET\Framework\v4.0.30319
.
В этот момент я не понимаю, почему 64-битный режим не работает, но теперь я разблокирован. Надеюсь, это поможет всем, у кого эта проблема.
Ответ 2
У меня была точно такая же проблема, поэтому спасибо за вашу помощь.
Однако... вы пытались запустить команду aspnet_regiis -i
в командной строке Visual Studio 64 бит (с правами администратора)? Когда я это сделал, он исправил его для 64-битного режима.
Чтобы уточнить, я нажал правой кнопкой мыши на Visual Studio x64 Win64 Command Prompt (2010)
и выберите "Запуск от имени администратора". Тогда я пошел сюда:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
И сделал следующее: aspnet_regiis -i
И теперь он отлично работает.
Ответ 3
Также убедитесь, что файл конфигурации имеет следующую строку, иначе маршрутизация не будет работать.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Ответ 4
Не используйте runAllManagedModulesForAllRequests. Вы хотите, чтобы IIS обрабатывал такие ресурсы, как изображения.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Вместо этого добавьте модуль маршрутизации MVC
<system.webServer>
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
</system.webServer>
Ответ 5
Еще одно замечание: убедитесь, что ваш пул приложений настроен на интегрированный, а не классический
Ответ 6
У меня была такая же проблема на IIS8/Windows Server 2012. Ни одно из предложенных решений не работало до тех пор, пока я не попробовал следующее.
dism /online /enable-feature /featurename:IIS-ASPNET45 /All
Без переключателя '/All' он жаловался, что родительская функция не установлена.
Странно то, что в соответствии с установкой Windows "Включить Windows-функции вкл/выкл", asp.net 4.5 уже был установлен.
Не нужно было вносить какие-либо изменения в файл web.config, добавлять или удалять модули.
Ответ 7
Я всегда использовал настройку настраиваемого сервера в VS 2008, которая позволяет мне отлаживать без проблем. Не уверен, что он будет работать по-другому в 2010 году
Ответ 8
У меня были эти симптомы; Мой Global.asax
рушился. Исправлена ошибка, теперь все работает.