Event ID 7034: Служба неожиданно прервана (Service Crash)
Архитектура диспетчера служб (SCM) и краши
Событие 7034 логируется в журнале System источником Service Control Manager. Сообщение: «Служба [ИмяСлужбы] была неожиданно завершена. Это произошло X раз(а)». В отличие от события 7036 (штатная остановка), 7034 означает жесткое фатальное падение процесса (Crash/Fault) в оперативной памяти.
Разница между кодами остановки служб
| Event ID | Источник инициативы | Что произошло |
|---|---|---|
| 7034 | Уровень ОС (Ядро/CLR) | Служба упала (Crash) из-за ошибки в коде (Access Violation). Требует отладки. |
| >7031 | Уровень ОС (Ядро) | То же падение, но в настройках службы УЖЕ включен автоматический рестарт. |
| 7023 | Сама служба | Служба корректно завершилась, но передала ОС код специфической ошибки. |
| 7036 | Администратор / ОС | Служба штатно выключилась (остановлена вручную или заснула). |
Пошаговое дерево решений (Crash Dump Analysis)
Сценарий 1: Поиск причины краша (Событие 1000)
Событие 7034 — это просто констатация смерти от диспетчера SCM. Чтобы найти виновника, вы ОБЯЗАНЫ переключиться в журнал Application (Приложение).
- Откройте
eventvwr.msc-> Журналы Windows -> Приложение. - Найдите событие 1000 (Application Error), произошедшее в ту же самую секунду, что и 7034.
- В событии 1000 будет указано Имя сбойного модуля (Faulting Module) — например,
ntdll.dll(проблема ядра) или сторонняяplugin.dll(баг в расширении). Это и есть причина.
Сценарий 2: Отладка служб на базе .NET Framework
Если упала служба, написанная на C# (например, агенты Veeam или IIS), ищите рядом событие 1026 (.NET Runtime). В его описании будет находиться полный Stack Trace (Дамп стека), который прямо укажет на строку кода, вызвавшую Unhandled Exception.
Сценарий 3: Настройка автоматического восстановления (Recovery)
Чтобы минимизировать простой (пока программисты ищут баг), настройте авто-рестарт.
- Откройте
services.msc. - Зайдите в Свойства падающей службы -> вкладка Восстановление (Recovery).
- Настройте 'Первый сбой' и 'Второй сбой' на Перезапуск службы (Restart the Service). Установите таймер на 1 минуту. Ошибки сменятся на код 7031.
Типовые ошибки администраторов
- Попытка "гуглить" код 7034: Гуглить код 7034 бессмысленно, так как он одинаков для миллионов разных программ. Всегда ищите и гуглите Имя сбойного модуля из сопутствующего события 1000.
Траблшутинг падений процессов (User-Mode Crash) требует опыта отладки. Возьмем серверы на абонентское обслуживание: соберем дампы через ProcDump, устраним утечки памяти (Memory Leaks) и вернем сервисам 100% стабильность.
Частые вопросы (FAQ)
Куда Windows сохраняет дампы при ошибке 7034?
По умолчанию Windows не сохраняет дампы упавших служб (User-Mode Dumps). Чтобы их получить, нужно создать ключи в ветке реестра HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps.
Почему после третьего сбоя 7034 служба больше не поднимается?
На вкладке 'Восстановление' (Recovery) действие для 'Последующих сбоев' (Subsequent failures) по умолчанию стоит 'Не выполнять никаких действий'. Измените его на рестарт.
Может ли антивирус вызывать 7034?
Да. Если антивирус заблокировал доступ к временному файлу (Lock), который служба пыталась прочитать, служба может получить 'Access Denied' и аварийно завершиться.
Как перезапустить зависшую после падения службу?
Если служба 'висит' в статусе Stopping, откройте CMD от имени админа, узнайте PID командой 'sc queryex ИмяСлужбы', а затем убейте процесс: 'taskkill /PID номер /F'.
Служба падает с 7034 только при старте сервера. Почему?
Вероятно, служба пытается обратиться к сетевым ресурсам (DNS/AD) до того, как сетевой стек полностью инициализировался. Измените тип запуска службы на 'Автоматически (Отложенный запуск)'.