ASP MVC в IIS 7 приводит к: ошибка HTTP 403.14 - запрещено - PullRequest
143 голосов
/ 16 ноября 2009

Я занимаюсь разработкой веб-проекта ASP MVC. Теперь у меня есть требование, которое вынуждает меня развернуться в среде разработки IIS7 (чтобы проверить некоторые функции). Я получаю вышеупомянутое сообщение об ошибке всякий раз, когда я пытаюсь ввести URL-адрес веб-сайта. (Примечание: машина для разработки: Vista Home Premium, IIS7)

Что я делал до сих пор:

Отредактировал файл HOSTS (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts).

Поместите в него два домена (127.0.0.1 domain1.com и 127.0.0.1 domain2.com).

Создана папка c: \ sites \ dirOfApplication и развернута из Visual Studio 8 в эту папку.

В IIS7 создан новый сайт с именем хоста domain1.com и папкой приложения выше.

При вводе адреса domain1.com в веб-браузере возникает указанная выше ошибка (ошибка HTTP 403.14 - Запрещено - веб-сервер настроен так, чтобы не перечислять содержимое этого каталога.)

Я думаю, что что-то упустил, но не знаю что! Попытался развернуть файлы System.Web.Mvc, System.Web.Abstraction & System.Web.Routing с тем же результатом. Всякий раз, когда я пытаюсь нажать F5 и запустить приложение, оно отлично работает!

Ответы [ 28 ]

2 голосов
/ 17 января 2015

Как исправить «Ошибка HTTP 403.14 - Запрещено Веб-сервер настроен так, чтобы не отображать содержимое этого каталога»

Эта ошибка возникает, когда у вас запущен MVC 2+, размещенный на IIS 7+, это потому, что ASP.NET 4 не был зарегистрирован в IIS. В моем случае я создавал проект MVC 3 и размещал его на IIS 7.5.

Чтобы исправить это, убедитесь, что у вас установлен MVC 2 или выше и .Net Framework 4.0, затем запустите командную строку от имени администратора и введите следующую строку:

32 бит (x86)

% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

64 бит (x64)

% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

2 голосов
/ 14 января 2017

Если верхние ответы не работают, найдите конфигурацию с именем PrecompiledApp.config в каталоге хостинга и удалите ее, если она существует. Этот файл мешает IISExpress и LocalIIS работать должным образом. (И я думаю, что это ошибка) Содержимое файла в моем случае было:

<precompiledApp version="2" updatable="true"/>

И я на 100% уверен, что это была проблема с моим делом, поскольку я попробовал все за 2 часа и много раз тестировал с этим конфигом.

Еще одна вещь: вы не можете использовать aspnet_regiis в более новых версиях Windows и IIS, поэтому попробуйте

dism /online /enable-feature /featurename:IIS-ASPNET45 /all
2 голосов
/ 06 апреля 2017

Я попробовал все здесь; ничего не получалось. Проблема была в моем Web.config файле, каким-то образом зависимая привязка сборки была изменена с минимального 1 на минимальное 0.

<!-- was -->
<runtime>
    <assemblyBinding>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" />
                <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />


<!-- should have been -->
                <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
1 голос
/ 11 декабря 2011

Я также столкнулся с этой же ошибкой, несмотря на все предоставленные решения по следующим причинам:

  • Отсутствующие библиотеки DLL
  • Строка подключения к базе данных указывает на недоступный сервер.
1 голос
/ 19 июля 2016

Также возможна еще одна вещь

установить .net framework 4.0 вручную

Это решение для IIS7 в окне 7

открытый cmd с администрацией превалирует

перейти в каталог "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319"

введите aspnet_regiis.exe -i

добрался до вашего менеджера inet, набрав команду run "inetmgr"

обновите свой IIS7

перезагрузите сайт.

1 голос
/ 31 мая 2018

Я знаю, что это старая тема, но вы также можете получить эту ошибку (при отладке), если у вас есть папка с именем, совпадающим с маршрутом в контроллере.

Например, если у вас есть UserController с маршрутом с именем / User, и у вас также есть папка в вашем решении с именем "User", то IISExpress попытается просмотреть папку, а не показывать ваш вид.

1 голос
/ 07 декабря 2016

Проверьте ваш Global.asax файл. В моем случае это было пусто.

0 голосов
/ 05 апреля 2018

Я неправильно набрал IP-адрес одной цифрой, что означало, что он отправляется на один из моих других серверов. Очень запутанно, когда вы получаете страницу с ошибкой .NET, но не с того компьютера!

0 голосов
/ 22 июля 2017

Я знаю, что у вас была эта проблема на внутреннем хосте, но раньше я сталкивался с такой проблемой на внешнем хосте, и в моем случае у него было собственное разрешение, может быть, это могло бы сэкономить кому-то время:

На самом деле мой сайт был ОСТАНОВЛЕН по какой-то причине, о которой в настоящее время я не знаю, чтобы проверить, есть ли у вас такая же проблема, на главной странице WebsitePanel перейдите на страницу Web -> Веб-сайты и выберите доменное имя вашего веб-сайта. из списка, после этого в правой части только что открытой страницы, проверьте, видите ли вы слово STARTED, иначе, если вы видите слово STOPPED, заставьте его начать снова. Вот и все.

0 голосов
/ 13 января 2017

У меня была эта проблема, но она была легко устранена путем перехода в Диспетчер информационных служб Интернета (IIS), дважды щелкнув Просмотр каталогов и нажав Включить.

В моем случае я мог получить доступ к файлам напрямую, но не мог получить доступ к папкам.

...