Event ID 2280 IIS W3SVC: Не удалось загрузить модуль (Module DLL Crash)
Архитектура модулей IIS и описание ошибки 2280
Событие 2280 логируется источником IIS-W3SVC-WP в журнале Application. Сообщение: "Не удалось загрузить модуль DLL [Module_Path] из-за ошибки. Данные содержат код ошибки". Архитектура веб-сервера IIS построена на подключаемых модулях (Global Modules в applicationHost.config). Если рабочий процесс w3wp.exe не может физически прочитать или загрузить в память указанную DLL, веб-сервер падает и возвращает HTTP 500 Internal Server Error (или 500.19) для ВСЕХ сайтов на сервере.
Таблица кодов Win32 ошибок в событии 2280
| Код ошибки (в Details) | Расшифровка | Причина |
|---|---|---|
0x8007007e | ERROR_MOD_NOT_FOUND | Файл DLL физически удален или путь в applicationHost.config не существует. |
0x800700c1 | ERROR_BAD_EXE_FORMAT | Конфликт разрядности! Попытка загрузить 32-битную DLL в 64-битный пул (или наоборот). |
0x80070005 | ERROR_ACCESS_DENIED | У группы IIS_IUSRS нет прав NTFS на чтение файла DLL. |
Пошаговое дерево решений по кодам сбоя
Сценарий 1: Устранение конфликта разрядности (0x800700c1)
Если модуль (например, старый коннектор 1С или PHP) является 32-битным:
- Откройте IIS Manager -> Application Pools.
- Выберите пул вашего сайта -> Advanced Settings.
- Установите параметр Enable 32-Bit Applications в значение True.
Сценарий 2: Восстановление отсутствующего модуля (0x8007007e)
Часто возникает при удалении модуля URL Rewrite или .NET Core без очистки конфигурации.
- Откройте
C:\Windows\System32\inetsrv\config\applicationHost.config. - Найдите секцию
<globalModules>. - Удалите строчку с отсутствующей DLL (или переустановите нужный модуль, например URL Rewrite Module 2.1).
Сценарий 3: Исправление прав NTFS (0x80070005)
# Выдача прав на чтение DLL группе IIS_IUSRS
icacls "C:\inetpub\modules\custom_module.dll" /grant "IIS_IUSRS:(RX)"Типовые ошибки администраторов
- Ручное удаление папок модулей: Никогда не удаляйте папки сторонних модулей из Program Files без предварительного удаления модуля из консоли IIS (Modules -> Remove).
Поломка глобальной конфигурации IIS останавливает все порталы. Делегируйте обслуживание веб-серверов инженерам ITSTM: наведем порядок в applicationHost.config, вылечим зависимости DLL и обеспечим аптайм.
Частые вопросы (FAQ)
Почему событие 2280 кладет вообще все сайты на сервере?
Если сбойный модуль зарегистрирован в секции <globalModules>, IIS пытается загружать его в память каждого создаваемого процесса w3wp.exe. Сбой модуля блокирует запуск любого пула.
Как безопасно отредактировать файл applicationHost.config?
Перед любым редактированием сделайте резервную копию файла или используйте команду: %windir%\system32\inetsrv\appcmd add backup 'MyBackup'.
Поможет ли команда iisreset при ошибке 2280?
Нет. Команда iisreset просто перезапустит службы, но при первом же HTTP-запросе w3wp.exe снова попытается загрузить битую DLL и выдаст ошибку 2280.
Где посмотреть точный путь к сбойной DLL?
В теле сообщения события 2280 указан точный абсолютный путь к файлу библиотеки.