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

person Umar Abbas    schedule 18.11.2013    source источник
comment
Скорее всего, проверка подлинности Windows отключена в IIS, но она требуется в файле web.config вашего приложения.   -  person SpaceBison    schedule 18.11.2013
comment
@SpaceBison, как включить проверку подлинности окна в IIS8?   -  person Umar Abbas    schedule 18.11.2013
comment
Вот ссылка на мой файл webconfig. icopter.co.uk/Webconfig.txt   -  person Umar Abbas    schedule 18.11.2013
comment
Вы рассматривали возможность использования модуля перезаписи URL?   -  person    schedule 18.11.2013


Ответы (19)


Получил точно такую ​​же ошибку и пришел к этому вопросу. Как упоминал @SpaceBison в комментариях, этот ответ описывает решение - https://stackoverflow.com/a/12867753/404099 . Я заметил его слишком поздно, и он пропускает несколько шагов. Вот что сработало для меня:

Windows Server 2012, IIS 8.5. Должен работать и для других версий.

  • Перейдите в диспетчер серверов, нажмите добавить роли и функции.
  • In the roles section choose: Web Server
    • Under Security sub-section choose everything (I excluded digest, IP restrictions and URL authorization as we don't use them)
    • В разделе «Разработка приложений» выберите .NET Extensibility 4.5, ASP.NET 4.5 и обе записи ISAPI.
  • В разделе функций выберите: NET 3.5, .NET 4.5, ASP.NET 4.5.
  • В разделе веб-сервера выберите: Веб-сервер (все), Инструменты управления (Консоль управления IIS и служба управления), Проверка подлинности Windows - если вы используете какой-либо из них.
person Ilia Barahovski    schedule 23.02.2014
comment
Все, что мне нужно было добавить, - это элементы .NET 4.5 в разделах AppDev и Features. Элемент расширяемости также принудительно вводит 2 записи ISAPI. - person Bill; 03.06.2014
comment
Эти шаги помогают мне решить проблему. Спасибо. - person psulek; 12.08.2014
comment
Наконец, решение для решения моих недугов. Спасибо, это имеет смысл и достаточно просто. В наши дни всегда кажется, что не хватает функций и ролей ... - person Alexandru; 23.12.2014
comment
ServerManager недоступен в Windows7 Home, как это исправить? - person knocte; 13.01.2015
comment
@knocte - в Windows 7 вы можете войти в меню «Удалить или изменить программу», а затем нажать «Включить или отключить функции Windows». Это не то же самое, что диспетчер сервера, но вы можете установить IIS и связанные с ним функции таким образом. - person Ilia Barahovski; 15.01.2015
comment
РАБОТАЕТ (не нужно было устанавливать 3.5), пришлось переработать пул приложений, чтобы он вступил в силу. (Спасибо) - person Jim; 04.03.2015
comment
Большой! Он работает правильно, я тоже не устанавливаю .NET3.5. - person NEOLPAR; 19.05.2016
comment
Где находится диспетчер серверов? У меня есть ПК с Windows 8 и IIS 8.5 - person Axel; 14.12.2016
comment
У меня тоже сработало. Но мне нужна только эта часть. В разделе «Разработка приложений» выберите .NET Extensibility 4.5, ASP.NET 4.5 и обе записи ISAPI. Используя Win Server 2016. - person ramires.cabral; 01.10.2018
comment
РАБОТАЛ!!!! Бац, после дня борьбы наконец-то получил решение, большое спасибо :) - person Abhishek Dhote; 05.04.2019
comment
Спасибо. Хотелось бы, чтобы Google показал мне этот результат несколькими часами ранее ???? - person Owen Blacker; 25.06.2019
comment
Включение полной безопасности помогло мне - person Vithu; 13.09.2020

Я получил эту ошибку при попытке разместить службу WCF в пустом приложении ASP.NET. Все решение использовалось на платформе .NET 4.5 на IIS 8.5 под управлением Windows 8.1. Проблема заключалась в том, чтобы

  1. Открыть Включить или выключить функции Windows

  2. Перейдите в раздел WCF в расширенных службах ASP.NET 4.5.

  3. Проверьте активацию HTTP.

  4. Вам будет предложено перезагрузить систему.

    Снимок экрана

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

ИЗМЕНИТЬ 11-ФЕВ-2016. Только что возникла проблема с Windows 10 Pro, IIS 10. На этот раз это был HTTP 404.0. Исправление осталось прежним, включите HTTP-активацию в разделе "Возможности Windows" - ›.NET Framework 4.6 Advanced Services -› WCF Services - ›HTTP-активация.

person Sudhanshu Mishra    schedule 08.02.2015
comment
Большое спасибо @dotnetguy! :-) У меня тоже сработало. Ошибка возникла, когда я попытался разместить Web API 2.2 и MVC в пустом приложении ASP.NET. - person Gurusinghe; 11.08.2015
comment
@dotnetguy Это именно то, что помогло мне после того, как я не смог заставить IIS работать с моим локальным приложением MVC в Visual Studio. Огромное спасибо. HTTP-активация это так! - person silkfire; 19.09.2015
comment
@silkfire рад, что помог! - person Sudhanshu Mishra; 19.09.2015
comment
@dotnetguy Спасибо - person Heemanshu Bhalla; 05.11.2016
comment
@dotnetguy Получил ту же самую проблему, и это решило ее! Большое спасибо! Ты действительно парень .Net! : D - person Rian; 20.11.2016
comment
Молодец, спасибо за это. Исправлена ​​та же проблема для меня в Win 10 Pro, VS2015 при попытке запустить приложение ASP.Net 4.5 MVC в IIS. - person Apogee; 04.03.2017
comment
Работает отлично. Главный виновник - HTTP-активация! - person Abhijit Mondal Abhi; 06.08.2019
comment
Если бы это произошло после обновления из обновления Windows 10 1909 - ›Обновление Windows 10 2004 года. Спасло меня от повторной установки Windows или часов поиска и устранения неисправностей - person David Kroukamp; 02.08.2020

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

Ниже приведены шаги к решению:

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

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

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

У меня это сработало.

person SeeTheC    schedule 23.09.2014
comment
Спасибо. После выполнения этих действий появилась следующая ошибка. Я мог бы решить эту проблему, как описано здесь: stackoverflow.com/a/30594003/434742 - person Krisztián Balla; 21.07.2016
comment
Спасибо. Так было со мной .. - person Henrik Clausen; 06.02.2021

Если вы впервые запускаете 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 framework, просто замените v4.0.30319 на соответствующее имя папки.

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

person Ibrahim Dauda    schedule 03.04.2014
comment
Я пытаюсь запустить два разных проекта VS на моем сервере iis (виртуальной машине); один работает, другой нет ... Вышесказанное помогло получить первую работу; есть ли причина, по которой второй не должен работать? - person JosephDoggie; 01.12.2014
comment
Я использовал этот метод раньше, но aspnet_regiis больше не поддерживается в Windows 8.1. Чтобы зарегистрировать 4.5, используйте Программы и компоненты ›Включение и отключение компонентов Windows› Информационные службы ›World Wide Web Services› Функции разработки приложений ›Проверьте ASP.NET 4.5 и все, что вам может понадобиться. - person masterwok; 02.12.2014
comment
это нужно запускать от имени администратора (щелкните правой кнопкой мыши значок cmd.exe - ›запустить от имени администратора), и даже если он может обнаруживать ошибки во время операции (и создавать файл журнала), у меня это сработало! - person knocte; 13.01.2015
comment
Для IIS 8.5 в Windows 8.1 (или Windows Server 2012) это не работает. Я получил следующее приглашение: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 ›aspnet_regiis.exe -i Начать установку ASP.NET (4.0.30319.33440). Этот параметр не поддерживается в данной версии операционной системы. Вместо этого администраторам следует установить / удалить ASP.NET 4.5 с IIS8 с помощью диалогового окна «Включение / выключение компонентов Windows», средства управления Server Manager или средства командной строки DISM.exe. - person Sudhanshu Mishra; 08.02.2015
comment
Спасибо!! У меня работает с IIS 10 и Windows 10 :) - person Víctor Beltrán; 10.08.2017

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

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

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

person GIOESCOM    schedule 14.10.2015

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

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

Щелкните ОК.

person Jon    schedule 05.02.2015
comment
В Windows 10 были выбраны ASP, ASP.NET.35. И ASP.NET 4.6. Проверка 4.6 у меня сработала. Спасибо! - person PeterVermont; 24.10.2016
comment
Думаю, это наиболее лаконичный и понятный ответ. - person themefield; 27.07.2019

Если это Windows 10, откройте PowerShell от имени администратора и выполните следующую команду:

dism /online /enable-feature /all /featurename:IIS-ASPNET45
person user2912206    schedule 28.11.2019

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

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

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

person Taras Alenin    schedule 05.03.2014

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

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

Оно работает!

person Javier Livio    schedule 04.03.2016
comment
Это также устранило мою проблему. Таким образом, проблема заключалась в том, что после добавления IIS на мою локальную машину я не включил нужные функции. Это решило это. СПАСИБО. - person jbooker; 08.07.2018

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

  1. Откройте Диспетчер IIS.
  2. Выберите сервер на панели "Подключения".
  3. Откройте Редактор конфигурации на главной панели.
  4. В раскрывающемся списке Разделы выберите раздел, который нужно разблокировать, например system.webServer> defaultPath
  5. Нажмите Разблокировать атрибут на правой панели.
  6. Повторите эти действия для любых других настроек, которые вам нужно разблокировать.
  7. Перезагрузите IIS (необязательно) - выберите сервер на панели «Подключения», нажмите «Перезагрузить» на панели «Действия».
person Chris    schedule 06.09.2014
comment
Это почти полезно, но в IIS 7 нет defaultPath в system.webServer - person Djorge; 10.06.2015
comment
Под этим он подразумевает, что если вы хотите обновить проверку подлинности Windows, вы найдете ее по пути system.webServer - ›Безопасность -› Аутентификация. - person Mido; 14.07.2016

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

person HasanG    schedule 25.08.2016
comment
Просто установил все необходимое, но все еще не заработало. Затем я просто установил модуль URL Rewrite, и он заработал! Спасибо! - person Vitox; 31.12.2018
comment
Если модуль перезаписи URL отсутствует, код ошибки не будет 0x80070021. - person Lex Li; 22.06.2020

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

person SpaceBison    schedule 18.11.2013

В Windows 8.1 или 10 включите .Net framework 4.5 или более поздней версии, как показано ниже.

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

person DevLoverUmar    schedule 15.10.2020
comment
Это конкретное решение при работе с Windows 8 или 10, решило проблему, с которой я боролся весь день, спасибо! - person Manuel Castro; 21.01.2021

Пожалуйста, <staticContent /> строчку и удалите ее из web.config.

person Erdogan    schedule 01.07.2014

Что ж, мы используем 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
person S Meaden    schedule 11.08.2015

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

person Frank Myat Thu    schedule 14.01.2019
comment
Если URL Rewrite отсутствует, код ошибки не будет 0x80070021. - person Lex Li; 22.06.2020


Это работает и экономит мое время. Попробуйте Ошибка HTTP 500.19 - внутренняя ошибка сервера - 0x80070021 (IIS 8.5)

person iurewa    schedule 17.11.2015

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

person Pheko Moroke    schedule 22.09.2016
comment
Уйти с работы проще, чем создать новый файл web.config. Никогда не пытайтесь это сделать. - person Shadi Namrouti; 22.10.2017