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

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

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

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

Event ID 1004 IIS WAS: внезапное завершение процесса w3wp.exe

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

Симптомы падения процесса IIS (Event ID 1004)

В журнале System регистрируется ошибка от источника Microsoft-Windows-WAS: Event ID 1004: A worker process serving application pool '[Имя_пула]' terminated unexpectedly. The process id was [PID]. The process exit code was '0xc0000005'.

СимптомПоследствия
Ошибки 502.2 Bad Gateway / 500 Internal ErrorУ посетителей веб-сайта внезапно обрываются загрузка страниц и API запросы
Аварийное падение w3wp.exe (Crash)Процесс исчезает из Диспетчера задач без выполнения штатных процедур выключения
Код завершения 0xC0000005 (Access Violation)Попытка чтения или записи в защищенную память сторонним неуправляемым кодом

Пошаговая диагностика и устранение крашей IIS (Event ID 1004)

  1. Найдите детали падения в журнале Application: найдите связанное событие Event ID 1000 (Application Error) или Event ID 1026 (.NET Runtime):
# Поиск события падения .NET рантайма в журнале Application:
Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='.NET Runtime'; Id=1026} -MaxEvents 3 | Format-List Message
  1. Настройте автоматический сбор аварийного дампа памяти через Procdump:
# Настройка автоматического захвата полного дампа памяти при следующем падении пула:
# Скачайте Procdump от Sysinternals и выполните команду в консоли:
procdump.exe -ma -e 1 -g -x C:\Dumps w3wp.exe
  1. Проверьте используемый режим разрядности пула (32-бит vs 64-бит): если ваше веб-приложение использует старые 32-битные DLL компоненты:
# Включение поддержки 32-битных приложений для пула:
Set-ItemProperty "IIS:\AppPools\ИмяПула" -Name "enable32BitAppOnWin64" -Value $True
  1. Проверьте целостность и версии установленных библиотек .NET Core Hosting Bundle: переустановите актуальный пакет .NET Core Windows Server Hosting Bundle.

Совет: Самая частая причина кода выхода 0xc0000005 — ошибки в неуправляемых библиотеках C++ (C-Extensions, драйверы Oracle, криптопровайдеры), вызванные некорректной работой с указателями памяти.

💡 Практика специалистов: Если пул приложений падает с Event 1004 регулярно при пиковой нагрузке, в 80% случаев это результат StackOverflowException или OutOfMemoryException внутри рекурсивных методов веб-приложения.

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

Что означает код выхода 0xc0000005?

Это исключение Access Violation (Нарушение прав доступа к памяти) — процесс попытался обратиться к адресу памяти, который ему не принадлежит.

Где посмотреть текст необработанного исключения в коде сайта?

В Event Viewer перейдите в журнал Application -> найдите событие .NET Runtime Event ID 1026, в котором будет указан полный Stack Trace ошибки.

Чем отличается Event ID 1004 от Event ID 5011?

Event 1004 фиксирует факт внезапного уничтожения процесса (Crash), а Event 5011 фиксирует отсутствие ответа на Ping-запрос (Hang/Freeze).

Как открыть и проанализировать файл дампа .dmp?

Используйте программу WinDbg (из Windows SDK) и выполните команду !analyze -v для автоматического выявления сбойной функции.

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