Ошибка HTTP 500.19 и код ошибки: 0x80070021
У меня есть простая сборка webAPI с помощью Visual Studio 2013. Она хорошо работает, когда я запускаю ее из VS13, но когда я копирую проект в локальный IIS, это дает мне следующую ошибку.
Ошибка HTTP 500.19 - внутренняя ошибка сервера. Запрашиваемая страница недоступна, поскольку соответствующие данные конфигурации для этой страницы недействительны.
Подробная информация об ошибке:
Модуль IIS Web Core
Уведомление BeginRequest
Обработчик еще не определен
Код ошибки 0x80070021
Ошибка конфигурации Этот раздел конфигурации не может использоваться по этому пути. Это происходит, когда раздел заблокирован на родительском уровне. Блокировка либо по умолчанию (overrideModeDefault="Deny"), либо устанавливается явно с помощью тега местоположения с помощью overrideMode="Deny" или устаревшего allowOverride="false".
Файл конфигурации \?\C:\inetpub\wwwroot\APITeslin\web.config
Конфиг Источник:
36: <system.webServer>
37: <handlers>
38: <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
23 ответа
Получил точно такую же ошибку и пришел к этому вопросу. Как упомянуто в комментариях @SpaceBison, этот ответ описывает решение - /questions/23722475/oshibka-konfiguratsii-etot-razdel-konfiguratsii-ne-mozhet-ispolzovatsya-po-etomu-puti/23722500#23722500. Я заметил это слишком поздно, и он пропускает некоторые шаги. Вот что сработало для меня:
Windows Server 2012, IIS 8.5. Должно работать и для других версий.
- Зайдите в диспетчер серверов, нажмите добавить роли и функции
- В разделе ролей выберите: Веб-сервер
- В разделе "Безопасность" выберите все (я исключил дайджест, ограничения IP-адресов и авторизацию URL, поскольку мы их не используем)
- В разделе Разработка приложений выберите.NET Extensibility 4.5, ASP.NET 4.5 и обе записи ISAPI.
- В разделе функций выберите: NET 3.5, .NET 4.5, ASP.NET 4.5
- В разделе веб-сервера выберите: Веб-сервер (все), Инструменты управления (Консоль управления IIS и Служба управления), Аутентификация Windows - если вы используете какой-либо из них
Я получил эту ошибку при попытке разместить службу WCF в пустом приложении ASP.NET. В целом решение использовало платформу.NET 4.5 на IIS 8.5, работающем на Windows 8.1. Нужно было открыть "Включить или выключить компоненты Windows", перейти в раздел WCF в расширенных службах ASP.NET 4.5 и проверить активацию HTTP. Вам будет предложено перезагрузить систему.
Это должно исправить HTTP 500.19!
РЕДАКТИРОВАТЬ 11-ФЕВРАЛЬ 2016 Только что возникла проблема в Windows 10 Pro, IIS 10, на этот раз это был HTTP 404.0. Исправление остается прежним, включите "Активация HTTP" в разделе "Функции Windows" -> .NET Framework 4.6 Advanced Services -> Службы WCF -> HTTP Activation
У меня тоже была та же проблема, но после мозгового штурма с IIS и Google в течение многих часов. Я нашел решение. Эта ошибка вызвана тем, что некоторые параметры отключены в IIS applicationHost.config
,
Ниже приведены шаги для решения:
- Идти к
C:\Windows\System32\inetsrv\config\applicationHost.config
и открыть в блокноте Измените следующее значение ключа, присутствующее в
<section name="handlers" overrideModeDefault="Deny" />
изменить это значение с "Запретить" на "Разрешить"<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
изменить это значение с "Запретить" на "Разрешить"
Это сработало для меня.
Если вы запускаете IIS на этом компьютере в первый раз, попробуйте запустить средство регистрации ASP.NET IIS (aspnet_regiis.exe).
Вот как это сделать: если вы используете.net Framework v4, откройте командную строку от имени администратора и измените каталог на вашу базовую папку.net Framework, используя:
CD C:\Windows\Microsoft.NET\Framework\v4.0.30319
или, если вы используете 64-битный компьютер, используйте:
CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319
после успешного перехода к соответствующему каталогу запустите средство регистрации ASP.NET IIS, используя:
aspnet_regiis -i
Если вы используете другую версию платформы.NET, просто замените v4.0.30319
с соответствующим именем папки.
Надеюсь это поможет.
Я решил это, сделав следующее:
WebServer(ISS)->WebServer->Application Development
add .NET Extensibility 3.5
add .NET Extensibility 4.5
add ASP.NET 4.5
add ISAPI Extensions
add ISAPI Filters
На Windows 8.1, IIS 8.5 решение для меня было зарегистрировать 4.5 с панели управления:
Программы и компоненты> Включение или выключение функций Windows> Информационные службы> Службы всемирной паутины> Функции разработки приложений> Выберите ASP.NET 4.5
Нажмите ОК.
Как ошибка идентифицирует - "Это происходит, когда раздел заблокирован на родительском уровне". Чтобы разблокировать раздел, вы можете использовать appcmd.exe и выполнить следующую команду:
%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers -commitpath:apphost
Дополнительные сведения о блокировке разделов и о том, что такое родительский контекст конфигурации, см. В документации IIS.
Если это Windows 10, откройте PowerShell от имени администратора и выполните следующую команду:
dism /online /enable-feature /all /featurename:IIS-ASPNET45
В нашем случае мы боролись с этой ошибкой довольно много дней. Оказывается, в панели управления программами включаются или выключаются функции окон.
Мы выбрали Интернет-службы информации, службы всемирной паутины, функции разработки приложений, и там мы проверяем набор функций, связанных с нашей средой разработки. Например: ASP.NET 4.6. .NET Extensibility 4.6 и др.
Оно работает!
Попробуйте разблокировать соответствующие параметры конфигурации IIS (7.5) на уровне сервера следующим образом:
- Открыть IIS Manager
- Выберите сервер на панели соединений
- Откройте редактор конфигурации на главной панели
- В раскрывающемся списке "Разделы" выберите раздел, который нужно разблокировать, например, system.webServer > defaultPath
- Нажмите Разблокировать атрибут в правой панели
- Повторите для любых других настроек, которые вам нужно разблокировать
- Перезапустить IIS (необязательно). Выберите сервер на панели Conncetions и нажмите "Перезагрузить" на панели действий.
В моем случае для модуля IIS URL Rewrite были правила, но этот модуль не был установлен. Вы должны проверить ваш web.config, если какие-либо модули включены, но не установлены.
Я получил код ошибки 0x80070021 при переносе IIS7 на IIS 10 в окне win 2016. . Следующие шаги помогли мне исправить это.источник
вручную измените значение с «Запретить» на «Разрешить» для следующих настроек в
%windir%\system32\inetsrv\config\ applicationHost.config
под
section:system.webServer
<section name="handlers" overrideModeDefault="Deny" />
Ваш web.config описывает, что вы используете проверку подлинности с помощью форм - убедитесь, что вы включили проверку подлинности с помощью форм и отключили анонимную проверку подлинности в IIS в меню "Проверка подлинности" для веб-сайта, который работает в IIS.
Я исправил с удаленной анонимной аутентификацией.
Просто прокомментируйте в своей веб-конфигурации IIS
<security>
<!--
<authentication>
<anonymousAuthentication userName=""/>
</authentication>
-->
</security>
Ну, мы используем Amazon Web Services и поэтому ищем сценарии и программы для решения этой проблемы. Так что я охотился за инструментом командной строки. Итак, сначала я попробовал хитрость бега
c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
но потому что я использую облачный Windows Server 2012, он пожаловался
This option is not supported on this version of the operating system. Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the "Turn Windows Features On/Off" dialog, the Server Manager management tool, or the dism.exe command line tool. For more details please see http://go.microsoft.com/fwlink/?LinkID=216771.
и я погуглил и нашел официальную страницу поддержки Microsoft KB2736284. Так что есть инструмент командной строки dism.exe
, Поэтому я попробовал следующее
dism /online /enable-feature /featurename:IIS-ASPNET45
но он пожаловался и дал список имен функций, чтобы попробовать, поэтому я попробовал их один за другим, и я проверил свою веб-страницу WebAPI после каждой, и она работала после нижней в списке.
dism /online /enable-feature /featurename:IIS-ApplicationDevelopment
dism /online /enable-feature /featurename:IIS-ISAPIFilter
dism /online /enable-feature /featurename:IIS-ISAPIExtensions
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45
И теперь я могу перейти на свой сайт WebAPI и посмотреть информацию об API. Это должно помочь нескольким людям. [Тем не менее, я еще не совсем вне леса и не могу зайти на сайт из-за коробки. Все еще работаю над этим.]
Кроме того, я сделал несколько более ранних шагов после ответов других людей. Я могу подтвердить, что необходимо изменить следующее делегирование функций (хотя я бы хотел найти для них инструмент командной строки).
In Feature delegation
Change
'Handler Mappings' from Read Only to Read/Write
Change
'Modules' from Read Only to Read/Write
Change
'SSL Settings' from Read Only to Read/Write
Имея это сегодня на сервере Windows 2016 Core, я решил проблему, убедившись, что компоненты были установлены, как указано user5445681 , а затем я восстановил SDK в моем случае для .NET Core 3.1, .NET 5 и .NET 6, что решило проблему и веб-приложение ASP.NET 4.7.2 MVC работало.
Для приложений.NET Core на Windows Server (в моем случае 2012 с IIS 10) он работал после установки пакета.NET Core Windows Server Hosting ( ссылка).
Это работает и экономит мое время. Попробуйте HTTP Error 500.19 - Внутренняя ошибка сервера - 0x80070021 (IIS 8.5)
Этот раздел конфигурации нельзя использовать по этому пути. Это происходит, когда раздел заблокирован на родительском уровне. Блокировка либо по умолчанию (overrideModeDefault="Запретить")
Привет ребята
Из старых IIS и сервера
Мы можем столкнуться со следующей ошибкой, когда хотим запустить наше приложение в IIS 10, созданном на новой Microsoft Windows Server 2016.
Ошибка HTTP 500.19 — внутренняя ошибка сервера
Запрошенная страница недоступна, так как соответствующие данные конфигурации для страницы недействительны.
Этот раздел конфигурации нельзя использовать по этому пути. Это происходит, когда раздел заблокирован на родительском уровне. Блокировка осуществляется либо по умолчанию (overrideModeDefault="Deny"), либо устанавливается явным образом с помощью тега местоположения с помощью overrideMode="Deny" или устаревшего метода allowOverride="false". Решение очень простое.
Следуйте по пути к файлу C:\Windows\System32\inetsrv\config на своем компьютере. Измените часть overrideModeDefault="Deny" в файле конфигурации applicationHost на "Разрешить". Затем, когда вы перезапустите IIS, проблема будет устранена.
Убедитесь, что на сервере IIS установлена функция перезаписи URL.
Если он не установлен, убедитесь, что в файле web.config нет конфигурации, связанной с перезаписью URL
<!-- Make sure don't have below config, if server have not installed url rewrite feature. -->
<rewrite>
<rules>
<rule name="Fail bad requests">
<match url=".*"/> ...
Когда-нибудь мы скопировали конфигурацию с устаревшего сервера и сразу развернули на совершенно новый сервер, тогда мы можем столкнуться с проблемой такого рода 500.
Решение, которое работало для меня, состояло в том, чтобы удалить мой текущий Web.config и добавить новый. Это решило проблему для меня