HTTP Error 500.19 - Internal Server Error. The requested page cannot be accessed because the related configuration data for the page is invalid. Error Code 0x80070005
#Как читать ошибку
Страница 500.19 содержит блоки: «Модуль», «Уведомление», «Обработчик», «Код ошибки» и «Config File» (файл, который не удалось прочитать). Код ошибки и строка «Config Source» с номером строки указывают на причину. Исправляйте её, а не общую страницу.
| Код | Смысл | Что делать | |---|---|---| | 0x80070005 | Нет прав на чтение web.config или каталога | Выдать права IIS_IUSRS и пулу приложений | | 0x8007000d | Неверный XML или данные в web.config | Исправить синтаксис, кодировку | | 0x80070021 | Раздел заблокирован (lockedby) в applicationHost.config | Разблокировать раздел или убрать из web.config | | 0x800700b7 | Дубликат элемента в конфигурации | Удалить дублирующий элемент или добавить <clear /> | | 0x80070003 | Путь не найден (физический путь сайта) | Исправить путь в привязке сайта | | 0x8007052e / 0x80070570 | Ошибка доступа к общей папке или повреждённый файл | Проверить доступ, пересоздать конфигурацию |
#Частые причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет прав на папку или web.configФайлы скопированы с другого сервера. | Код 0x80070005. | Выдайте права IIS_IUSRS и пулу. |
| Неверный XMLОшибка при правке. | Код 0x8007000d. | Проверьте теги и кавычки. |
Модуль URL Rewrite не установленВ web.config есть <rewrite>. | Раздел не распознан. | Установите модуль Rewrite с сайта iis.net. |
| Заблокированный раздел (lockedBy)Раздел защищён в родителе. | Код 0x80070021. | Разблокируйте через appcmd. |
| Дубликат элементаОдинаковые записи в наследуемой конфигурации. | Код 0x800700b7. | <remove /> или <clear />. |
| Неверный путь сайтаПапка удалена. | Код 0x80070003. | Исправьте путь в IIS. |
#Порядок действий
- Прочитайте код и строку Config Source на странице ошибкиОткройте страницу IIS с ошибкой 500.19 и запишите её подтип/код HRESULT (
0x8007000d,0x80070021,0x80070005и т. п.) иConfig File/Config Source, если они видны на локальном сервере. Это разные причины, поэтому не применяйте разом разрешения, разблокировку секций и переустановку IIS. - Проверьте XMLЧерез консоль сервера откройте «Диспетчер служб IIS» (
inetmgr) → «Сайты» → нужный сайт и проверьте, какой файлweb.configиспользуется. Откройте его в редакторе с сохранением резервной копии, найдите указанную строку и проверьте корректность XML и расположение директив. Для ошибки некорректного XML исправьте скобку, кодировку или повтор секции. - Проверьте праваПри
0x80070005проверьте права чтения кweb.configи родительским каталогам через вкладку «Свойства → Безопасность» илиicaclsв повышенной командной строке. Выясните удостоверение пула приложений; при необходимости выдавайте ему минимальные разрешения на чтение именно нужного файла. Не выполняйте рекурсивныйgrant Full Controlдля всех. - Проверьте установленные компоненты IIS и модулиПри
0x80070021определите в сообщении, какая секция заблокирована на верхнем уровне. В «Диспетчер служб IIS» → «Редактор конфигурации» администратор может выяснить, где секция доступна; разблокировка черезappcmd unlock configдолжна соответствовать политике размещения сайтов. Не разблокируйте обработчики и модули глобально только ради одной страницы без проверки последствий. - Проверьте блокировку разделовПроверьте физический путь сайта в «Основные настройки» и соответствие виртуальных каталогов/вложенных приложений. Неверная граница приложения может заставить IIS интерпретировать
web.configиз другого каталога. После исправления откройте нужный URL, не перезапуская все сайты IIS. - Временно переименуйте web.config и проверьте, открывается ли сайтЕсли ошибка связана с отсутствующим модулем или обработчиком, откройте «Диспетчер сервера → Добавить роли и компоненты» и проверьте установленные компоненты Web Server (IIS) для данной версии приложения. Устанавливайте компонент только после подтверждения зависимости и требований программы; лишняя роль способна увеличить поверхность атаки.
- Проверьте журнал IIS и журнал событийВ «Просмотр событий → Журналы Windows → Приложение» проверьте свежие сообщения IIS/WAS для нужного пула, затем повторно запросите URL. Если ошибка осталась, соберите HRESULT, строку
Config Source, идентификатор пула и версии модуля; передайте разработчику вместо изменения прав/настроек наугад. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
Если ошибка возникает только после публикации приложения, проверьте версию .NET Hosting Bundle для ASP.NET Core и целевую платформу пула приложений: несовместимость даёт похожие сообщения.