| Предыдущий | Следующий |
| ERROR_NO_RECOVERY_PROGRAM | ERROR_NOT_SAFEBOOT_SERVICE |
ERROR_SERVICE_NOT_IN_EXE
Настроенная служба не реализована исполняемым файлом службы
Процесс службы вызывает StartServiceCtrlDispatcher с массивом SERVICE_TABLE_ENTRY, который сопоставляет имена служб функциям обратного вызова ServiceMain. Когда SCM запускает службу, процесс должен предоставить имя службы, для размещения которой он настроен. ERROR_SERVICE_NOT_IN_EXE означает, что исполняемый файл и запись службы SCM расходятся в этом сопоставлении.
Сравните имя службы в базе данных SCM с именами в таблице диспетчера развёрнутого двоичного файла. Такое часто возникает после переименования службы, использования одного исполняемого файла для служб общего процесса или развёртывания двоичного файла другой версии продукта. Отображаемое имя отличается от имени службы. Не пытайтесь исправить проблему изменением только понятного пользователю отображаемого имени; обновите фактическое удостоверение службы или таблицу служб так, чтобы запрос запуска SCM мог быть направлен правильной функции ServiceMain.
Что проверить
- Прочитайте имя службы SCM, а не только её отображаемое имя.
- Посимвольно сравните его с именами SERVICE_TABLE_ENTRY, используемыми исполняемым файлом.
- Убедитесь, что путь к исполняемому файлу указывает на нужную сборку и модель размещения.
Ссылки
- Microsoft: StartServiceCtrlDispatcherW
- Microsoft: LPSERVICE_MAIN_FUNCTION
- Microsoft: база данных установленных служб
Нужно найти другой код? Найти другой код состояния или ошибки.