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

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

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

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

Event ID 1058 IIS WAS: критический сбой канала связи с процессом

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

Симптомы ошибки взаимодействия 1058

В системном журнале System фиксируется ошибка: Event ID 1058: A worker process serving application pool '[Имя_пула]' suffered a fatal communication error with the Windows Process Activation Service. The process id was [PID].

СимптомПроявление
Зависание пула приложений IISВеб-сервер перестает отвечать на запросы, соединения уходят в таймаут
Отказ передачи состояния процессаСлужба WAS принудительно убивает процесс по таймауту отсутствия ответа
Ошибки 500.19 / 503 в браузереПользователи получают сообщения о недоступности веб-сервера

Пошаговое решение ошибки связи WAS (Event ID 1058)

  1. Проверьте текущие выполняющиеся запросы в зависшем пуле:
# Просмотр всех активных запросов, выполняющихся дольше 10 секунд:
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" list requests /elapsed:10000
  1. Увеличьте лимиты времени отклика процесса при завершении и пинге:
# Увеличение таймаута на запуск и остановку процесса пула до 180 секунд:
Set-ItemProperty "IIS:\AppPools\ИмяПула" -Name "processModel.startupTimeLimit" -Value (New-TimeSpan -Seconds 180)
Set-ItemProperty "IIS:\AppPools\ИмяПула" -Name "processModel.shutdownTimeLimit" -Value (New-TimeSpan -Seconds 180)
  1. Создайте дамп процесса перед его принудительным уничтожением службой WAS:
# Настройка создания дампа при зависании (Orphan Worker Process):
Set-ItemProperty "IIS:\AppPools\ИмяПула" -Name "failure.orphanWorkerProcess" -Value $True
Set-ItemProperty "IIS:\AppPools\ИмяПула" -Name "failure.orphanActionExe" -Value "C:\Sysinternals\procdump.exe"
Set-ItemProperty "IIS:\AppPools\ИмяПула" -Name "failure.orphanActionParams" -Value "-ma %1% C:\Dumps"

Совет: Опция Orphan Worker Process оставляет зависший процесс изолированным для снятия дампа памяти и сразу запускает новый чистый процесс w3wp для обслуживания входящих клиентов.

💡 Практика специалистов: Если Event 1058 происходит регулярно при обращении к базе данных SQL, проверьте пул соединений (Connection Pool) в строке подключения приложения — исчерпание пула соединений блокирует рабочие потоки IIS.

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

Что означает опция Orphan Worker Process?

Вместо мгновенного завершения зависшего процесса WAS отключает его от приема запросов, оставляет в памяти для снятия дампа отладчиком и запускает новый рабочий процесс взамен.

Почему appcmd list requests возвращает пустой список?

Если запросы выполняются быстро (менее 10 мс) или если процесс w3wp завис на уровне самого сетевого сокета ядра, список может быть пуст.

В чем разница между ошибками 1007 и 1058?

Ошибки идентичны по смыслу, но Event 1058 часто генерируется при критическом отказе внутренней инфраструктуры IPC каналов Windows Process Activation Service.

Как принудительно перезапустить зависший пул через PowerShell?

Выполните: Restart-WebAppPool -Name "ИмяПула".

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