У одного із замовників зіткнулися з проблемою оновлень нових ПК з Windows 10 1607 і Windows Server 2016 з внутрішнього WSUS сервера (на Windows Server 2012 R2). Комп'ютери Windows 10 з'являються в консолі WSUS, але при запуску пошуку оновлень, клієнт дуже довго намагається їх знайти і повертає помилку 0x8024401c.
There were some problems installing updates, but we'll try again later. If you keep seeing this and want to search the web or contact support for information, this may help: (0x8024401c)Згідно списку кодів помилок центру поновлення Windows помилка 0x8024401C означає перевищення часу очікування відповіді від клієнта: WU_E_PT_HTTP_STATUS_REQUEST_TIMEOUT - HTTP status 408 - the server timed out waiting for the request.
У новому журналі логів служби Windows Update Windows 10 при цьому також періодично фіксується помилка, пов'язана з таймаут відповіді WSUS.
2017-05-30 14: 11: 24 870 816 тисячі двісті сорок чотири WS WARNING: There was an error communicating with the endpoint at 'http: // msk-wsus: 8530 / ClientWebService / client.asmx'.
2017-05-30 14: 11: 24 870 816 тисяча двісті сорок-чотири WS WARNING: There was an error receiving the HTTP reply.
2017-05-30 14: 11: 24 870 816 тисяча двісті сорок-чотири WS WARNING: The operation did not complete within the time allotted.
2017-05-30 14: 11: 24 870 816 тисяча двісті сорок-чотири WS WARNING: The operation timed out
Сама стаття 'http: // msk-wsus: 8530 / ClientWebService / client.asmx
'При цьому з клієнта доступна і відкривається, тобто виникає таке відчуття, що сервер WSUS або клієнт просто не встигають виконати якусь операцію і клієнт відвалюється з таймаут. Можливо при ініціюванні скануванні, новому клієнтові WSUS прилітає дуже великий список оновлень, в результаті чого досягаються якісь ліміти робочого процесу IIS.
Щоб вирішити проблему з клієнтами, мені довелося спочатку встановити на сервері WSUS оновлення KB3159706 (на сервері повинен бути встановлений Wndows Server 2012 R2 Update 1).
У статті KB3159706 (Update enables ESD decryption provision in WSUS in Windows Server 2012 and Windows Server 2012 R2) зверніть увагу на ручні дії, які потрібно виконати після установки оновлення (інакше може перестати відкриватися консоль WSUS).
- виконати команду
"C: \ Program Files \ Update Services \ Tools \ wsusutil.exe" postinstall / servicing
- Перевірити, чи встановлений компонент.NET Framework 4.5 -> HTTP Activation (
Get-WindowsFeature -Name NET-WCF-HTTP-Activation45
), і якщо він відсутній, встановити: - Якщо на WSUS використовується SSL, потрібно виконати редагування файлу C: \ Program Files \ Update Services \ WebServices \ ClientWebService \ Web.config відповідно до рекомендацій в статті (в нашому випадку цей пункт виконувати не довелося).
- Відредагуйте файл config (C: \ Program Files \ Update Services \ WebServices \ ClientWebService \ web.config), замінивши рядок
на
- Залишилося перезапустити службу WSUS з допомогу PoSh:
Get-Service -Name WsusService | Restart-Service -Verbose
Далі за допомогою консолі IIS Manager потрібно внести наступні зміни в налаштування пулу WsusPool (Application Pools -> WsusPool -> Advanced settings)
- Private Memory Limit (KB) - 0 (Було 1258015, забирається ліміт на використання пам'яті робочим процесів WSUS, в результаті служба може використовувати більше 1,2 Гб пам'яті)
- Queue Length - 25000 (Збільшуємо довжину черги до пулу додатки з 10000)
- Limit Interval (minutes) - 15 (Збільшуємо з 5 хвилин до 15 хвилин час для скидання лічильників і виконання CPU Throttling)
- Service Unavailable Response - TcpLevel (при старому значення HttpLevel клієнту повертається помилка HTTP 503, тепер з'єднання просто скидається)
Потім в налаштуваннях сайту WSUS Administration -> Advanced settings потрібно змінити значення Connection Time-out зі 180 до 320.
Залишилося перезапустити IIS:
IISReset
Тепер ми збільшили таймаут і ресурси сервера, необхідні клієнтам Windows 10 для пошуку і перевірки оновлень на сервері оновлень WSUS. На наступний день - все клієнти змогли виявити і встановити всі необхідні оновлення.