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 ]

0 голосов
/ 31 июля 2014

Шаг 1. Выберите сайт, для которого возникает ошибка HTTP в IIS, а затем нажмите «Просмотр каталогов», как показано на рисунке ниже:

Шаг 2. В окне просмотра каталогов в IIS нажмите «Включить в действиях» с правой стороны, как показано на рисунке ниже:

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

0 голосов
/ 03 сентября 2012

В моем случае web.config и все файлы, кроме папки / bin, отсутствовали (как-то не копировались).
Глупо, но это было последнее, что я проверил.

0 голосов
/ 09 июля 2015

В проекте ASP.NET с C # 4.5 я решил эту проблему, установив Расширение ASP.NET в установщике веб-платформы

0 голосов
/ 07 мая 2015

Я использую: Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5

Если ничего из вышеперечисленного не сработало, попробуйте следующее:

Снимите флажок «Прекомпилировать во время публикации»

Это пнуло меня в задницу на несколько дней.

0 голосов
/ 28 января 2013

Недавно я обнаружил эту ошибку и обнаружил, что проблема вызвана тем, что функция «Перенаправление HTTP» не включена на моем Windows Server. Эта запись блога помогла мне пройти через поиск и устранение неисправностей, чтобы найти ответ (несмотря на то, что это более старые версии Windows Server): http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx для более новых серверов перейдите в раздел Управление компьютером, затем прокрутите вниз до роли веб-сервера и нажмите add role services

0 голосов
/ 18 сентября 2014

Вы можете легко решить эту проблему, выполнив следующие шаги:

откройте диспетчер iis и выберите свой сайт, который вы хотите развернуть (на левой боковой панели), а затем дважды щелкните значок настройки приложения, чтобы открыть диалоговое окно настройки приложения, а затем вы увидите сетку, поэтому дважды щелкните строку named webpages: включено и установлено значение true (по умолчанию false).

это сработало для меня, потому что до того, как я это сделал, я получал ту же ошибку, я даже включал просмотр каталогов (как рекомендовано официальным руководством по iis на форуме iis), но когда я просматривал сайт, то наш список каталогов чем настоящая веб-страница, но когда я выполнил шаги, описанные выше, проблема была решена, и все работало нормально (но не забудьте предоставить доступ для asppool в логинах sql после решения этой проблемы, конечно)

как я сказал, это хорошо сработало для меня, я надеюсь, что это сработает и для вас удачи

0 голосов
/ 07 февраля 2019

Попробовав каждое предложенное здесь решение, я нашел еще одно возможное решение: URLScan

В IIS был отключен WebDAV, даже в файле web.config моего приложения был удален обработчик и модуль WebDAV. PUT по-прежнему возвращали 403 - Запрещено без каких-либо записей в журналах IIS. (GET / POST работал нормально).

Оказывается, в IIS был активирован активный фильтр ISAPI (URLScan), который предотвращал все PUT. После удаления URLScan у меня все заработало.

0 голосов
/ 13 мая 2014

Я использовал Identity Impersonate:

<system.web>
    <identity impersonate="true" userName="domain\username" password="password"/>
</system.Web>

При переходе на сервер вы должны предоставить имени пользователя доступ к папке Temporary ASP.NET Files, чтобы она могла правильно читать, записывать и выполнять:

C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files

Очевидно, замените "frameworkversion" и "aspversion" версиями, которые вы используете.

...