Event ID 1121 IIS WAS: автоотключение пула из-за серии сбоев
Симптомы блокировки пула по Event ID 1121
В журнале System регистрируется ошибка Event ID 1121: Application pool '[Имя_пула]' is being automatically disabled due to a series of failures in the process(es) serving that application pool.
| Симптом | Состояние системы |
|---|---|
| Статус пула в IIS | Пул помечен красной иконкой «Остановлен» (Stopped) |
| Код ошибки в браузере | HTTP 503 Service Unavailable |
| Повторяемость ошибки | После ручного запуска пул снова падает через 1–2 минуты |
Пошаговое восстановление работы пула (Event ID 1121)
Ошибка вызвана срабатыванием механизма защиты от лавинообразных аварийных сбоев — Rapid-Fail Protection (по умолчанию 5 падений за 5 минут).
- Найдите первопричину падения процессов w3wp.exe в журнале Application:
# Поиск критических ошибок пула в журнале приложений за последний час:
Get-WinEvent -FilterHashtable @{
LogName = 'Application'
ProviderName = @('Application Error', '.NET Runtime')
StartTime = (Get-Date).AddHours(-1)
} | Select-Object TimeCreated, Message | Format-List- Временно скорректируйте лимиты Rapid-Fail Protection для проведения диагностики:
# Отключение автоматической остановки пула при сбоях (для отладки):
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set apppool /apppool.name:"ИмяПула" /failure.rapidFailProtection:"false"
# Либо увеличение допустимого числа падений до 20 раз за 5 минут:
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set apppool /apppool.name:"ИмяПула" /failure.rapidFailProtectionMaxCrashes:20
# Запуск пула приложений:
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" start apppool /apppool.name:"ИмяПула"- Проверьте разрядность подключаемых DLL: если ваше веб-приложение использует 32-битные библиотеки, включите поддержку 32-бит в параметрах пула:
# Включение поддержки 32-битных приложений в пуле:
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set apppool /apppool.name:"ИмяПула" /enable32BitAppOnWin64:trueВнимание: Отключение rapidFailProtection разрешено только на время поиска бага. Если не устранить причину сбоя приложения, бесконечные падения и перезапуски w3wp.exe приведут к 100% нагрузке на процессор сервера.
Частые вопросы (FAQ)
Зачем IIS автоматически отключает пул приложений?
Чтобы предотвратить зависание всей операционной системы и исчерпание дескрипторов ядра, когда падающий веб-сервис входит в бесконечный цикл перезапусков.
Как сбросить статус ошибки и запустить пул через командную строку?
Выполните команду: %windir%\system32\inetsrv\appcmd.exe start apppool /apppool.name:"ИмяПула".
Почему пул падает сразу после первого HTTP-запроса?
Чаще всего это StackOverflowException, AccessViolationException в неуправляемом коде (C++) или отсутствие прав на чтение файла web.config.
Где настроить действие при срабатывании Rapid-Fail Protection?
В дополнительных свойствах пула (Advanced Settings) в секции 'Rapid-Fail Protection' можно задать запуск внешнего скрипта через параметр 'Failure Action Executable'.