Я вижу странную ошибку в моей сервисной программе Windows. Моя служебная программа вызывает StartServiceCtrlDispatcher()
в самом начале ее main()
, но она иногда терпит неудачу с 1063 (ERROR_FAILED_SERVICE_CONTROLLER_CONNECT)
.
Я знаю, что эта ошибка возникает, если пользователь запускает программу вручную (в качестве консольной программы). Но это не так. Я добавил код для проверки родительского процесса сервисной программы при возникновении этой ошибки, и он сообщает, что services.exe является родительским процессом (я думаю, что безопасно предположить, что моя программа была правильно запущен SCM).
К сожалению, эта ошибка не воспроизводится на моей машине dev и не может отлаживать ее самостоятельно, но журналы ошибок, записанные в пользовательских системах, указывают:
- Эта проблема возникает только у немногих% всех пользователей этой программы.
- Даже если проблема возникает, она, похоже, не повторяется. В следующий раз служба обычно запускается успешно.
- Когда эта проблема возникает,
StartServiceCtrlDispatcher()
останавливается около секунды, прежде чем она вернется с ошибкой.
Кто-нибудь видел подобную ошибку? Если да, то в чем причина ошибки?