Ошибка IIS 8.5 при выполнении операции с web.config

Вопрос или проблема

У меня есть тестовый сервер и продакшн-сервер, на которых размещен веб-сайт .netcore2.1. На тестовом сервере я могу получить доступ к веб-сайту и публиковать его с помощью MSDeploy без каких-либо проблем.

На продакшн-сервере я могу корректно публиковать из Visual Studio, все настроено так же, как и на тестовом сервере, но у меня возникает следующая ошибка, когда я пытаюсь открыть веб-сайт:

Ошибка Http 500.19
Код ошибки    0x8007000d
Конфигурационный файл   \\?\C:\MySite\web.config

У меня одинаковая конфигурация на обоих серверах, одна и та же версия программы, web deploy 3.6 и установлен модуль URL rewrite.

Единственное видимое отличие заключается в Службах, где Служба агента развертывания веба не отображается на продакшн-сервере. Тем не менее, я проверял это в процессе установки Webdeploy.

Интересная вещь: Когда я публикую с опцией “самостоятельный”, веб-сайт отображается, поэтому я подозреваю, что чего-то не хватает, но я не могу найти, чего именно.

Я пробовал много способов, ищя на форумах и в документации Microsoft, но ничего не решает эту проблему.

У меня была точно такая же проблема с веб-сайтом CyberArk (на IIS10) для службы мониторинга балансировщика нагрузки. После установки веб-сайта восстановление пакета MS .NET Core 3.1.22 решило проблему.

Ответ или решение

Ошибка IIS 8.5 при работе с web.config

Ваша ситуация с ошибкой Http Error 500.19 на производственном сервере, содержащим веб-приложение на .NET Core 2.1, действительно требует внимательного анализа. Давайте разберем возможные причины и шаги для их устранения.

1. Анализ кода ошибки

Код ошибки 0x8007000d обозначает, что конфигурационный файл в формате XML является недействительным. Это может означать, что в файле web.config присутствуют синтаксические ошибки или недопустимые атрибуты. Чтобы устранить эту проблему:

  • Проверьте файл web.config: Убедитесь, что файл не содержит синтаксических ошибок. Используйте валидатор XML для проверки файла на наличие неверного формата или проблем с кодировкой.

  • Сравните с тестовым сервером: Если на тестовом сервере все работает, пересмотрите содержимое web.config на обоих серверах и убедитесь в их полной идентичности.

2. Различия в конфигурации

Вы упомянули, что настройки серверов идентичны, но отсутствие службы Web Deployment Agent Service на производственном сервере может указывать на проблему. Эту службу важно установить и запустить, чтобы обеспечить корректное применение конфигураций.

  • Установка службы: Попробуйте переустановить Web Deploy, убедившись, что служба правильно зарегистрирована и работает. Можно проверить статус службы с помощью команды:

    Get-Service -Name "msdeploy"

Если служба не установлена, загрузите установочный файл Web Deploy и следуйте инструкциям установщика.

3. Проверка прав доступа

Проблемы с доступом на уровне файловой системы могут также вызвать ошибку 500.19. Убедитесь, что учетная запись службы приложения (например, IIS AppPool\YourAppPoolName) имеет доступ на чтение к файлу web.config и другим ресурсам в директории приложения.

  • Настройка прав: Пройдите следующие шаги:
    • Откройте свойства папки, содержащей ваше веб-приложение.
    • Перейдите на вкладку Безопасность.
    • Убедитесь, что учётная запись пула приложений имеет права на чтение.

4. Публикация с опцией "Self-contained"

Как вы уточнили, приложение работает корректно при публикации с использованием опции "Self-contained". Это может указывать на то, что на производственном сервере может отсутствовать необходимая версия ASP.NET Core Hosting Bundle.

  • Установите ASP.NET Core Hosting Bundle: Для .NET Core 2.1 нужно убедиться, что на сервере установлен соответствующий хостинг-бандл. Вы можете скачать его с официального сайта Microsoft.

5. Логи и дальнейший анализ

Если вышеуказанные шаги не решили проблему, потребуется дополнительный анализ:

  • Проверьте журналы событий Windows: Откройте "Просмотр событий" на сервере и посмотрите, нет ли записей с более детальной информацией о возникшей ошибке.

  • Включите детализированное сообщение об ошибках в IIS: Это можно сделать, изменив настройки веб-приложения в IIS, чтобы отобразить подробные ошибки.

Заключение

Ошибки конфигурации в IIS могут быть особенно сложны для диагностики. Рекомендуем вам следовать вышеописанным шагам, и если проблема не будет решена, рассмотрите возможность обращения за помощью к поддержке Microsoft или на профильные форумы, предоставляя как можно больше информации о вашей конфигурации и выполненных действиях.

Соблюдение этих рекомендаций поможет вам быстро устранить ошибку и восстановить работоспособность вашего веб-приложения.

Оцените материал
Добавить комментарий

Капча загружается...