Я занимаюсь разработкой веб-проекта 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 и запустить приложение, оно работает отлично!
источник
Ответы:
Может быть, это кому-то пригодится: после преобразования моего приложения в MVC 4 с .NET Framework 4.5 и установки инфраструктуры на мой сервер с IIS 7.0 я столкнулся с той же «запрещенной» ошибкой, упомянутой в вопросе. Я попробовал все варианты, описанные выше, но безрезультатно, когда заметил
отсутствовал в моем web.config. После добавления этого все заработало. Просто, но легко упустить из виду ...
РЕДАКТИРОВАТЬ:
Конечно, решение выше будет работать, но это действительно пустая трата ресурсов. Я думаю, что лучше добавить модуль маршрутизации, как указано Крисом Херрингом в комментариях.
источник
runAllManagedModulesForAllRequests="true"
из моего файла Web.config. Спасибо, что упомянули об этом, прежде чем я провел всю ночь, пытаясь понять это.Ответ на SO здесь , вопрос: 403 - Запрещено развертывание базовой MVC 3 на iis7.5
Беги
aspnet_regiis -i
. Часто я обнаружил, что вам нужно сделать это, чтобы заставить работать приложения 4.0. Откройте командную строку какAdministrator
(щелкните правой кнопкой мыши значок командной строки и выберите «Запуск от имени администратора»):После того как приложение установлено и зарегистрировано, убедитесь, что ваше приложение использует пул приложений, настроенный на .NET 4.0.
ОБНОВЛЕНИЕ: я только что нашел проблему с этой командой. Использование -i обновило все пулы приложений до ASP.NET 4.0.
Использование
aspnet_regiis -ir
устанавливает версию ASP.NET, но не меняет веб-приложения на эту версию. Вы также можете просмотреть опцию -iru.источник
Я тоже столкнулся с этой ошибкой. Все настройки и разрешения были правильными. Но я забыл скопировать Global.asax на сервер, и это привело к ошибке 403.
источник
Это из-за того, что вы слишком уверены в том, что вы (я) делаете!
На моей машине установлен IIS 7, но требуемого компонента ASP.NET (Панель управления-> Программы-> Включить / Выключить-> ASP.NET) не было.
Таким образом, установка это решило проблему
источник
Я была такая же проблема. Эта статья поддержки Microsoft исправила это для меня.
https://support.microsoft.com/en-us/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http- 404-ошибки , когда-они-попытка-к-процесса extensionless-URLs-на-МИС-7-и-МИС-7,5
В диалоговом окне «Включение или отключение компонентов Windows» приложения «Программы и компоненты» панели управления Windows выполните следующие действия:
-или-
Повторное включение либо модуля перенаправления ошибок HTTP, либо модуля сжатия статического содержимого гарантирует, что ASP.NET и IIS правильно синхронизируют события конвейера HTTP. Это позволяет модулю маршрутизации URL обрабатывать URL без расширений.
источник
Попробуйте применить следующие настройки, показанные ниже:
1) Дайте необходимое разрешение
IIS_IUSRS
пользователюIIS Server
(щелкните правой кнопкой мыши на веб-сайте, затем выберите «Редактировать разрешения»> «Безопасность»).2) Если вы используете
.NET Framework 4
, убедитесь, что версия .NET Framework находитсяv4.0
на том,Application Pool
что использует ваш веб-сайт.3) Откройте Commanp Prompt as
administrator
и выполнитеiisreset
команду для перезапускаIIS Server
.Надеюсь это поможет...
источник
В моем случае мне помог следующий подход:
aspnet_regiis -i
вWindows\Microsoft.Net\Framework
Добавление модулей в system.webServer
источник
Также проверьте, если вы используете x64, что вы включили 32-битные приложения в настройках пула приложений
источник
На снимите флажок «Прекомпиляция Во время издания» - я получаю 403.14 ошибку на веб - сервиса , я только что написал в VS2015 , так что я переписал его в VS2013 и получаю ту же ошибку. В обоих случаях у меня была «Прекомпиляция во время публикации». Я снял флажок, но все еще получал ошибку. В моем случае у меня также было « Удалить все существующие файлы перед публикацией », но я не удалял все из целевого каталога на сервере перед копированием туда новых опубликованных файлов. Если вы этого не сделаете - файл PrecompiledApp.config останется позади, что вызывает проблему. После того как я удалил этот файл, у меня были золотые качества в версиях моего веб-сервиса VS2013 и VS2015.
источник
Я попробовал все здесь; ничего не получалось. Проблема была в моем
Web.config
файле, как-то зависимая привязка сборки была изменена с минимальной1
на минимальную0
.источник
Пожалуйста, обратите внимание, что иногда неправильный
Managed pipeline mode
вызовет эту ошибку. Есть два варианта выбораintegrated
иclassic
.источник
Как исправить «Ошибка 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
источник
Проверьте ваш файл Global.asax . В моем случае это было пусто.
источник
Если верхние ответы не работают, найдите конфигурацию, названную
PrecompiledApp.config
в каталоге хостинга, и удалите ее, если она существует. Этот файл мешает IISExpress и LocalIIS работать должным образом. (И я думаю, что это ошибка) Содержимое файла в моем случае было:И я на 100% уверен, что это была проблема с моим делом, так как я попробовал все за 2 часа и много раз тестировал с этим конфигом.
Еще одна вещь: вы не можете использовать
aspnet_regiis
в более новых версиях Windows и IIS, поэтому попробуйтеисточник
Панель управления> включить или выключить функции Windows> Веб-сервер> Разработка приложений
Проверьте ASP.NET
источник
Я также столкнулся с этой же ошибкой, несмотря на все предоставленные решения по следующим причинам:
источник
В моем случае web.config и все файлы, кроме папки / bin, отсутствовали (как-то не копировались).
Глупо, но это было последнее, что я проверил.
источник
Недавно я обнаружил эту ошибку и обнаружил, что проблема вызвана тем, что функция «Перенаправление 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
источник
С проектом ASP.NET с C # 4.5 я решил эту проблему, установив расширение ASP.NET в установщике веб-платформы
источник
Также возможна еще одна вещь
установить .net Framework 4.0 вручную
Это решение для IIS7 в окне 7
открыть CMD с администрацией превалирует
перейдите в каталог "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319"
введите aspnet_regiis.exe -i
попал в ваш менеджер inet, набрав команду run "inetmgr"
обновить свой IIS7
перезагрузите сайт.
источник
Я знаю, что у вас была эта проблема на внутреннем хосте, но я уже сталкивался с такой проблемой на внешнем хосте, и в моем случае у него было собственное разрешение, возможно, это могло бы сэкономить кому-то время:
Фактически мой веб-сайт был ОСТАНОВЛЕН по какой-то причине, о которой в настоящее время я не знаю, чтобы проверить, есть ли у вас такая же проблема, на главной странице WebsitePanel перейдите в раздел Веб-> Веб-сайты и выберите доменное имя вашего веб-сайта из списка , после этого в правой части только что открытой страницы проверьте, видите ли вы слово STARTED, иначе, если вы видите слово STOPPED, заставьте его начать снова. Вот и все.
источник
Я знаю, что это старая тема, но вы также можете получить эту ошибку (при отладке), если у вас есть папка с именем, совпадающим с маршрутом в контроллере.
Например, если у вас есть UserController с маршрутом / User и у вас также есть папка в вашем решении с именем "User", то IISExpress попытается просмотреть папку, а не показывать ваш вид.
источник
Попробовав все предложенные здесь решения, я нашел еще одно возможное решение: URLScan
В IIS был отключен WebDAV, даже в файле web.config моего приложения обработчик и модуль WebDAV были удалены. PUT по-прежнему возвращает 403 - Запрещено без каких-либо записей в журналах IIS. (GET / POST работал нормально).
Оказывается, в IIS был активирован активный фильтр ISAPI (URLScan), который предотвращал все PUT. После удаления URLScan у меня все заработало.
источник
Моя ситуация была совершенно иной, чем любая из этих, и сообщение об ошибке 403: Forbidden было немного красной селедкой.
Если ваша функция Application_Start () в модуле Global.asax пытается получить доступ к web.config, а запись, на которую она ссылается, отсутствует, IIS блокируется и (по некоторым причинам) выдает сообщение об ошибке 403: Forbidden.
Дважды проверьте, что вы не пропустили запись в файле web.config, к которой вы пытаетесь получить доступ в модуле Global.asax.
источник
Если вы похожи на меня и у вас есть приложение, использующее NHibernate, и приведенные выше ответы не решили вашу проблему.
Вы должны посмотреть на строку подключения в вашем приложении; возможно, в файле webconfig, чтобы убедиться, что это правильно.
источник
Я использовал Identity Impersonate:
При переходе на сервер вы должны предоставить имени пользователя доступ к
Temporary ASP.NET
папке «Файлы», чтобы она могла правильно читать, записывать и выполнять:C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files
Очевидно, замените «frameworkversion» и «aspversion» версиями, которые вы используете.
источник
Шаг 1. Выберите сайт, для которого возникает ошибка HTTP в IIS, а затем нажмите «Просмотр каталогов», как показано на рисунке ниже:
Шаг 2. В окне просмотра каталогов в IIS нажмите «Включить в действиях» с правой стороны, как показано на рисунке ниже:
Теперь просмотр каталога включен для вашего сайта asp.net, просто перезапустите веб-приложение в IIS и просмотрите сайт в браузере и посмотрите результат.
источник
Я использую: Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5
Если ничего из вышеперечисленного не сработало, попробуйте следующее:
Это пнул мой зад на несколько дней.
источник
У меня была эта проблема, но она была легко устранена, для этого я обратился к Менеджеру информационных служб Интернета (IIS), дважды щелкнув Просмотр каталога и нажав Включить.
В моем случае я мог получить доступ к файлам напрямую, но не мог получить доступ к папкам.
источник
Я ошибочно набрал IP-адрес одной цифрой, что означало, что он идет на один из моих других серверов. Очень запутанно, поскольку вы получаете страницу ошибки .NET, но не с того компьютера!
источник