Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Event ID 5003 Windows Server, AD и Роли

Event ID 5003 WAS: сбой остановки рабочего процесса пула IIS

Обновлено: 28.08.2026 · Официальная документация ↗

Симптомы зависания пула приложений (Event ID 5003)

В журнале System фиксируется ошибка: Event ID 5003: A worker process serving application pool '[Имя_пула]' failed to stop a listener channel within the allotted time. Служба WAS попыталась корректно перезапустить пул приложений, но зависшие потоки рабочего процесса w3wp.exe не ответили на сигнал завершения.

СимптомОписание проблемы
Зависание перезапуска (Recycle)Пул приложений бесконечно находится в состоянии «Stopping»
Утечка дескрипторов и памятиСтарый процесс w3wp.exe продолжает занимать RAM и блокировать файлы сайта
Ошибки 503 при рециркуляцииПосетители получают ошибки недоступности сайта во время ночного перезапуска пула

Пошаговое решение зависания пула (Event ID 5003)

  1. Найдите и принудительно завершите зависший процесс w3wp.exe:
# Поиск PID зависшего пула приложений IIS:
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" list wps

# Принудительное завершение зависшего рабочего процесса по имени пула:
Get-CimInstance Win32_Process -Filter "Name = 'w3wp.exe'" | Where-Object { $_.CommandLine -like "*ИмяПула*" } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }
  1. Увеличьте лимит времени на остановку процесса (Shutdown Time Limit): если вашему приложению требуется больше времени для завершения транзакций (по умолчанию 90 секунд):
# Увеличение Shutdown Time Limit до 300 секунд для указанного пула:
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set apppool /apppool.name:"ИмяПула" /processModel.shutdownTimeLimit:"00:05:00"
  1. Включите принудительное завершение зависших процессов (Orphan Worker Process): настройте немедленное уничтожение неотвечающих процессов вместо вечного ожидания.

Анализ кода: Если процесс w3wp.exe регулярно висит при остановке, проверьте приложение на наличие незакрытых SQL-соединений, бесконечных циклов в фоновых задачах или взаимоблокировок (Deadlocks).

💡 Практика специалистов: Если пул зависает при рециркуляции каждую ночь, включите переключатель 'Disallow Overlapping Rotation = True' в дополнительных параметрах пула, чтобы WAS не пытался держать старый и новый процессы одновременно.

Частые вопросы (FAQ)

Почему процесс w3wp.exe не может остановиться самостоятельно?

Процесс ожидает завершения выполнения внешних блокирующих вызовов (например, зависшего запроса к базе данных или внешнему веб-сервису).

Что такое Recycling (Рециркуляция) в IIS?

Это штатный механизм перезапуска рабочего процесса пула для очистки фрагментированной памяти и предотвращения утечек ресурсов.

Как создать дамп зависшего процесса w3wp.exe перед его закрытием?

Используйте утилиту procdump от Sysinternals: procdump.exe -ma <PID_w3wp> C:\dumps\.

Где настроить расписание рециркуляции пула приложений?

В IIS Manager выберите 'Пулы приложений' -> нужный пул -> в правом меню 'Переработка...' (Recycling).

Полезные материалы
Рекомендуем