Ошибка IIS 500.19 с кодом 0x80070005: доступ к запрашиваемой странице невозможен из-за недействительных конфигурационных данных
У меня возникла проблема с загрузкой моего собственного сайта на ASP.NET на IIS с помощью IIS Manager. При попытке сделать это я получаю следующую ошибку:
HTTP Error 500.19 - Internal Server Error
Запрашиваемая страница не может быть доступна, так как связанные конфигурационные данные для страницы недействительны
Модуль: IIS Web Core
Уведомление: Неизвестно
Обработчик: Пока не определён
Код ошибки: 0x80070005
Ошибка конфигурации: Не удается прочитать файл конфигурации из-за недостаточных прав
Файл конфигурации: \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config
Я несколько раз искал решение этой ошибки, но ни одно из найденных решений не помогло.
У меня есть проблема с учетной записью IUSR
. Я не вижу эту учетную запись в списке "группы или пользователи" в свойствах файла web.config
.
В чем может быть проблема?
5 ответ(ов)
Наконец-то я нашел решение своей проблемы. Учетная запись ASP.NET не отображалась в диспетчере IIS, потому что я не активировал соответствующий флажок в IIS. Чтобы сделать это в Windows 7, выполните следующие шаги:
- Откройте Панель управления.
- Нажмите на ссылку «Программы» (не «Удаление программ»).
- Нажмите на ссылку «Включение или отключение компонентов Windows».
- Найдите в появившемся окне «Интернет-службы IIS» и раскройте этот узел.
- Раскройте узел «Служба Всемирной паутины».
- Раскройте узел «Функции разработки приложений».
- Установите флажок рядом с «ASP.NET».
- Затем нажмите кнопку OK.
Теперь вы увидите учетную запись ASP.NET в диспетчере IIS, а также по умолчанию вы увидите учетную запись IIS. Теперь вам нужно переместить ваш сайт ASP.NET из «Моих документов» в другое место, к которому у IIS есть доступ (например, на другой раздел вашего компьютера). Теперь вы можете просматривать ваш сайт через диспетчер IIS, и он должен работать.
Большое спасибо Джеффу Тёрнеру за решение.
Сообщение, которое вы видите, указывает на то, что ваш конфигурационный файл поврежден в какой-то степени. Однако также говорится, что доступ к файлу конфигурации невозможен. Поэтому я бы проигнорировал изначальное сообщение о повреждении/недействительности, так как это, скорее всего, просто следствие того, что файл не может быть прочитан из-за отсутствия соответствующих прав доступа.
Причина, по которой файл конфигурации не может быть прочитан, заключается в том, что процесс, выполняющий ваше веб-приложение, не имеет разрешения на доступ к файлу или каталогу. Вам нужно предоставить процессу, который запускает ваше веб-приложение, эти разрешения.
Права доступа должны быть довольно простыми, то есть, по крайней мере, Чтение, а в зависимости от вашего приложения, возможно, также Запись.
Вы упомянули, что IUSR и т.д. отсутствуют в свойствах web.config
. Если вы имеете в виду, что IUSR не указан на вкладке безопасности файла, то это хорошо. Не стоит предоставлять IUSR какие-либо права на web.config, так как роль IUSR представляет собой анонимного интернет-пользователя.
Файл web.config должен только быть доступен через ваше приложение.
Проблема в том, что вы не указали, какая у вас операционная система и версия IIS, поэтому сложно давать конкретные рекомендации.
Например, в IIS 7.5 сообщение об ошибке, которое вы упоминаете, вероятно, возникает из-за того, что вашему ApplicationPoolIdentity не назначены необходимые разрешения. Ваше веб-приложение принадлежит приложению в пуле процессов, и вам нужно предоставить разрешения ОС-учетной записи, под которой работает пул приложений вашего веб-приложения. Обычно это что-то вроде NetworkService, но вы могли настроить его на использование специально созданной учетной записи. Без дополнительной информации трудно дать точный совет.
Я сталкивался с такой же проблемой, и вот решение, которое сработало для меня.
- Откройте IIS Manager (Диспетчер IIS).
- Щелкните правой кнопкой мыши на нужном сайте.
- Выберите "Правка разрешений" (Edit Permissions).
- На вкладке "Безопасность" добавьте пользователя 'IIS_IUSRS'.
- Предоставьте полные права пользователю 'IIS_IUSRS'.
- Установите идентичность пула приложений на 'ApplicationPoolIdentity'.
Чтобы добавить свои пять копеек, у меня возникла такая же ошибка, и моя проблема оказалась довольно простой: мне не хватало .NET Core Hosting Bundle. Как только я установил этот пакет и перезагрузил сервер, все заработало.
Вы можете найти руководство по развертыванию ASP.NET Core на Windows здесь: https://learn.microsoft.com/ru-ru/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2
Лицо в ладонях:
Вы также можете столкнуться с этой ошибкой, если путь к файлу конфигурации указан неверно. Проверьте еще раз, чтобы убедиться, что физический путь введен правильно в IIS.
Обнаружено потенциально опасное значение Request.Form, полученное от клиента
ASP.NET Веб-сайт или ASP.NET Веб-приложение?
Можно ли установить неограниченную длину для maxJsonLength в web.config?
Запрос прерван: Не удалось создать безопасный канал SSL/TLS
Следует ли игнорировать периодическую ошибку Invalid viewstate?