Ошибка 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" />

Ответы

Ответ 1

Получил точно такую ​​же ошибку и пришел к этому вопросу. Как упоминал @SpaceBison в комментариях, этот ответ описывает решение - fooobar.com/questions/1055/.... Я заметил это слишком поздно, и он пропустил несколько шагов. Это то, что сработало для меня:

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 - если вы используете какой-либо из них

Ответ 2

Я получил эту ошибку при попытке разместить службу WCF в пустом приложении ASP.NET. Все это решение использовало платформу .NET 4.5, на IIS 8.5, работающую в Windows 8.1. Готов было открыть "Включить или отключить Windows-функции", перейдите в раздел WCF под расширенными службами ASP.NET 4.5 и проверьте активацию HTTP. Вам будет предложено перезагрузить систему. Screen Shot

Это должно исправить HTTP 500.19!

EDIT 11-FEB-2016 Просто появилась проблема с Windows 10 Pro, IIS 10, на этот раз это был HTTP 404.0. Исправление остается прежним, включите "HTTP-активацию" в разделе "Возможности Windows" → .NET Framework 4.6 Дополнительные службы → Сервисы WCF → Активация HTTP

Ответ 3

У меня также возникала такая же проблема, но после мозгового штурма с IIS и google в течение многих часов. Я нашел решение. Эта ошибка связана с тем, что некоторые параметры отключены в IIS applicationHost.config.

Ниже приведены шаги для решения:

  • Перейдите в C:\Windows\System32\inetsrv\config\applicationHost.config и откройте в блокноте
  • Измените следующее значение ключа, присутствующее в

    • <section name="handlers" overrideModeDefault="Deny" /> измените это значение с "Запретить" на "Разрешить"

    • <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> измените это значение с "Запретить" на "Разрешить"

Это сработало для меня.

Ответ 4

Если вы запускаете IIS на этом компьютере в первый раз, попробуйте запустить инструмент регистрации IIS ASP.NET(aspnet_regiis.exe).

Вот как это сделать: Если вы используете .net framework v4, откройте командную строку в качестве администратора и смените каталог на свою базовую папку .net, используя:

CD C:\Windows\Microsoft.NET\Framework\v4.0.30319

или, если вы используете 64-битный компьютер, используйте:

CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319

когда вы успешно перешли к соответствующему каталогу, запустите инструмент регистрации IIS ASP.NET, используя:

aspnet_regiis -i

Если вы используете другую версию .NET framework, просто замените v4.0.30319 на соответствующее имя папки.

Надеюсь, что это поможет.

Ответ 5

Я решил это, выполнив следующее:

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

введите описание изображения здесь

Ответ 6

В Windows 8.1 IIS 8.5 решение для меня состояло в регистрации 4.5 с панели управления:

Программы и функции > Включить или отключить функции Windows > Информационные информационные службы > Всемирные веб-службы > Возможности разработки приложений > Выберите ASP.NET 4.5

Нажмите "ОК".

Ответ 7

Как ошибка idnicates - "Это происходит, когда раздел заблокирован на родительском уровне". Чтобы разблокировать раздел, вы можете использовать appcmd.exe и выполнить следующую команду:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers -commitpath:apphost

Для получения дополнительной информации о блокировке раздела и контексте родительской конфигурации обратитесь к документации IIS.

Ответ 8

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

Мы выбрали Internet Information Services, всемирные веб-сервисы, функции разработки приложений, и там мы проверяем набор функций, связанных с нашей средой разработки. Например: ASP.NET 4.6..NET Extensibility 4.6 и т.д.

Это работает!

Ответ 9

В моем случае были правила для модуля IIS URL Rewrite, но у меня не было установлен этот модуль. Вы должны проверить свой web.config, если есть какие-либо модули, но не установлены.

Ответ 10

Ваш web.config описывает, что вы используете проверку подлинности форм. Убедитесь, что вы включили аутентификацию форм и отключили анонимную аутентификацию в IIS в меню "Аутентификация" для веб-сайта, работающего в IIS.

Ответ 11

Попробуйте разблокировать соответствующие параметры конфигурации IIS (7.5) на уровне сервера, как показано ниже:

  • Откройте Диспетчер IIS
  • Выберите сервер на панели "Подключения"
  • Откройте Редактор конфигурации на главной панели
  • В раскрывающихся разделах выберите раздел для разблокировки, например. system.webServer > defaultPath
  • Нажмите Разблокировать атрибут в правой панели
  • Повторите для любых других настроек, которые необходимо разблокировать.
  • Перезагрузите IIS (необязательно). Выберите сервер на панели "Контексты", нажмите "Перезагрузка" в панели "Действия".

Ответ 12

Введите <staticContent /> строку и удалите ее из web.config.

Ответ 13

Ну, мы используем 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.

и я Googled и нашел официальную страницу поддержки Microsoft KB2736284. Итак, есть инструмент командной строки dism.exe. Поэтому я попробовал следующее

dism /online /enable-feature /featurename:IIS-ASPNET45

но он пожаловался и дал список featurenames, чтобы попробовать, поэтому я попробовал их один за другим, и я протестировал веб-страницу 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

Ответ 14

Для приложений .NET Core на Windows Server (в моем случае 2012 с IIS 10) он работал после установки пакета хостинга .NET Core Windows Server (link).

Ответ 15

Убедитесь, что на сервере 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.

Ответ 16

Я исправил с удаленной анонимной аутентификацией.
Просто прокомментируйте в своей веб-конфигурации IIS

<security>          
    <!--
    <authentication>
        <anonymousAuthentication userName=""/>
    </authentication>
    -->
</security> 

Ответ 18

Решение, которое сработало для меня, - удалить мой текущий Web.config и добавить новый. Это решило проблему для меня