Не удается запустить веб-приложение ASP.NET MVC 2 на IIS 7.5

Я пытаюсь запустить веб-приложение ASP.NET MVC 2 под IIS в Windows 7, но получаю ошибку 403.14. Вот шаги для воспроизведения:

  1. Откройте Visual Studio 2010
  2. Создайте новый проект ASP.NET MVC 2 под названием MvcApplication1
  3. Shift + F5, чтобы запустить приложение. Вы должны увидеть http://localhost:{random_port}/ и страница будет отображаться правильно.
  4. Нажмите на MvcApplication1 и выберите "Свойства". Перейдите в раздел "Сеть".
  5. Выберите "Использовать локальный веб-сервер IIS" и создайте виртуальный каталог.
  6. Сохранить.
  7. 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 рушился. Исправлена ​​ошибка, теперь все работает.