Event ID 2307 IIS WAS: Сбой инициализации рабочего процесса (Worker Process)
Архитектура IIS и WAS (Windows Process Activation Service)
Событие 2307 логируется источником WAS в журнале System. Сообщение: "Рабочий процесс (Worker Process) для пула приложений '[ИМЯ_ПУЛА]' не удалось инициализировать, и он был отключен в связи с возникновением ошибки". Симптомы: При попытке зайти на сайт, пользователи мгновенно получают ошибку 503 Service Unavailable. В диспетчере IIS проблемный пул автоматически останавливается (Disabled). В отличие от ошибки сайта (500), здесь падает само 'сердце' — процесс w3wp.exe даже не может прочитать свою конфигурацию для старта.
Причины падения процесса WAS:
- Повреждение applicationHost.config: Синтаксическая ошибка (незакрытый XML-тег) или некорректно удаленный модуль IIS.
- Проблемы с правами: Удостоверение пула (AppPool Identity) не имеет прав на чтение папки
C:\inetpub\temp\appPools. - Зависание .NET Framework: Корпоративный антивирус заблокировал компиляцию JIT-файлов во временных директориях.
Дерево решений: Траблшутинг процесса w3wp.exe
Сценарий 1: Проверка и восстановление конфигурации (AppCmd)
Если кто-то руками (или скриптом) редактировал главный конфиг IIS и допустил ошибку формата, WAS не запустит ни один пул.
- Откройте командную строку от имени Администратора.
- Перейдите:
cd %windir%\system32\inetsrv. - Запустите валидацию конфига:
Если конфиг сломан, команда вернет ошибку (например, `XML parse error`).appcmd list site - Восстановите резервную копию (IIS делает бэкапы автоматически):
appcmd list backup appcmd restore backup "CFGHISTORY_0000000001"
Сценарий 2: Выдача прав на временные папки IIS
Для старта процессу w3wp.exe необходимо создать конфигурационный файл-копию в своей Temp-директории.
- Перейдите в папку:
C:\inetpub\temp\appPools. - Нажмите Свойства -> Безопасность.
- Убедитесь, что встроенная группа IIS_IUSRS имеет права Чтение и выполнение (Read & Execute).
- Если папки нет (была случайно удалена админом), создайте ее руками и назначьте права.
Сценарий 3: Сбор дампа падения (ProcDump / Event Viewer)
Если пул падает, но конфиги целы, посмотрите парное событие. Сразу за 2307 в журнале Application (Приложение) будет событие 1000 (Application Error) для процесса w3wp.exe с указанием конкретного сбойного модуля (Faulting module). Если падает rewrite.dll — переустановите модуль URL Rewrite. Если clr.dll — проблема в .NET Framework (поврежден GAC).
Типовые ошибки администраторов
- Переустановка IIS поверх сломанного: Удаление и установка роли IIS через Server Manager не удаляет папку
C:\Windows\System32\inetsrv\config. Если конфиг был поврежден, 'новый' IIS подхватит старый конфиг и снова упадет с 2307. Обязательно переименовывайте папку config перед чистой установкой.
Траблшутинг пулов IIS, утечек памяти (Memory Leaks) и конфликтов .NET требует квалификации DevOps/Web-инженера. Передайте веб-инфраструктуру на абонентское обслуживание: мы внедрим APM (Application Performance Monitoring), оптимизируем пулы и обеспечим 100% аптайм сайтов.
Частые вопросы (FAQ)
В чем разница между 2307 и 5002 (WAS)?
Событие 5002 означает Rapid Fail Protection (пул успешно стартовал, но сайт внутри него 5 раз подряд вызвал критический краш, и WAS отключил пул). Событие 2307 — процесс даже не смог инициализироваться (на этапе чтения конфига или выделения памяти).
Где IIS хранит историю резервных копий?
По умолчанию история (AppCmd Config History) хранится в папке 'C:\inetpub\history'. Система хранит 10 последних успешных конфигураций.
Может ли неверный пароль AppPool Identity вызвать 2307?
Нет. Если пароль указан неверно или истек, WAS сгенерирует событие 5057 или 5059 (Logon Failure for Identity). 2307 — это более глубокая системная ошибка инициализации.
Почему 2307 возникает после изменения параметров 32-bit Applications?
Если вы включили 'Enable 32-Bit Applications = True', но на сервере удалена подсистема WOW64 или не установлены 32-битные версии ISAPI-фильтров (перечисленных в глобальном конфиге), процесс w3wp.exe 32-бит не сможет загрузить 64-битные модули и упадет при старте.