Если на сервере с ОС Windows Server 2012 R2 и установленной ролью Windows Server Update Services (WSUS) в конфигурации веб-сервера IIS помимо сайта WSUS Administration имеются какие-либо другие сайты, то после удаления роли WSUS эти сайты могут перестать работать. Рассмотрим эту проблему и способ её решения.
После выполнения стандартной процедуры удаления роли WSUS через консоль Server Manager замечено, что все сайты, работающие на базе веб-сервера IIS перестали штатно работать, возвращая всем клиентам, подключающимся из локальной сети, ошибку "500 - Intenal server error"
Чтобы получить больше информации об ошибке, выполняем открытие сайта локально на самом веб-сервере и видим, что ошибка 500.19 связана с модулем сжатия DynamicCompressionModule и имеет код 0x8007007e
Иногда при решении подобного рода проблем дополнительную ясность может дать получение описания кода ошибки. Полученный в нашем случае код ошибки 0x8007007e можно попробовать расшифровать штатными инструментами Windows:
- с помощью утилиты командной строки net, например так:
net helpmsg 0x8007007e
- с помощью PowerShell, например так:
[ComponentModel.Win32Exception]0x8007007e
В нашем случае первый вариант не дал результата, зато метод с использованием PowerShell вернул описание кода ошибки.
Теперь становится понятно, что работе всех сайтов в IIS мешает ошибка в механизме сжатия, которая связана с отсутствием/недоступностью какого-то модуля.
После дальнейшего изучения ситуации стало очевидно, что роль WSUS после удаления оставила в системе немало "мусора". В частности в IIS не был удалён сайт WSUS Administration и связанный с ним пул приложений WsusPool, а виртуальные каталоги этого сайта ссылались на уже несуществующие в системе файловые пути. Ручное удаление этих "ошмётков" из консоли IIS Manager не купировало проблемы с 500 ошибкой веб-сервера.
Далее по совету страницы с подробным описанием ошибки мы заглянули в конфигурационный файл applicationHost.config, расположенный в каталоге C:\Windows\System32\inetsrv\config.
Обнаружилось, что в разделе глобальной конфигурации хоста configuration > system.webServer > httpCompression присутствует объект типа scheme с именем "xpress", ссылающийся на уже несуществующую в системе библиотеку C:\Program Files\Update Services\WebServices\suscomp.dll
Судя по всему, это тот самый проблемный модуль сжатия, на отсутствие которого ругается веб-сервер IIS.
Удаляем строку, описывающую проблемную схему "xpress", оставив только схему "gzip" с вызовом имеющейся в системе библиотеки gzip.dll и сохраняем изменения в файле.
Сразу после этого сайты в IIS заработали, как ни в чём не бывало.
Вот такой вот нежный IIS и такой вот злой WSUS :)
Спасибо огромное, рецепт сработал чудодейственно.
Все сработало. Топ решение !