Программа запускается правильно, если я дважды щелкаю ее или отлаживаю с VS2010, но она не отвечает, когда я пытаюсь запустить ее с Services.msc
.Раньше он работал нормально, но я попытался отменить регистрацию, а затем перерегистрировать службу, чтобы исправить другую ошибку, и теперь я получаю следующую ошибку:
Could not start the PFAdapterMng service on Local Computer.
Error 1053: The service did not respond to the start or control request in a timely fashion.
Я попытался поместить журналы в началеиз main()
, и я обнаружил, что служба перестает отвечать до того, как она туда даже попадет.
Я пытался использовать Procmon , чтобы выяснить, отсутствует ли какой-либо ключ реестра, но яне удалось найти никаких проблем с помощью Procmon.
Я также попытался перерегистрировать службу, чтобы попытаться исправить ее, поскольку перерегистрация службы была причиной ошибки.Кажется, это тоже ничего не исправляет.
Я прошел программу с параметрами -UnregServer
и -Service
, чтобы убедиться, что программа была незарегистрированной и успешно зарегистрирована, и похоже, что онабыть зарегистрированным как служба правильно.
Это из-за какой-то ошибки в реестре?Я не понимаю, как или почему моя программа перестает отвечать до того, как она достигнет main()
.
Что еще я могу попытаться сделать для устранения этой проблемы?
ОБНОВЛЕНИЕ:
Итак, я попытался отменить регистрацию службы после попытки запустить ее, и, похоже, она работала нормально.Я смотрю в services.msc
, и я все еще вижу, что приложение является службой.Раньше, до того как я получил ошибку 1053, она просто исчезла бы после первого раза.Я снова попытался отменить ее регистрацию и получил сообщение:
Служба не может быть удалена
Поэтому я решил запустить приложение с параметром -UnregServer
внутри Visual Studio 2010выяснить, в чем ошибка.Функция DeleteService()
не выполняется с ошибкой:
ERROR_SERVICE_MARKED_FOR_DELETE
Служба не удаляется, пока все открытые дескрипторы службы не будут закрыты.Я прошел через вызовы функции CloseServiceHandle()
и похоже, что ручки были успешно закрыты.Служба также не удаляется, если она работает.Я проверил Process Manager, и служба не работала.Служба не удаляется из-за того, что служба перестала отвечать ранее?
Я попытался перезагрузить компьютер, и он исчез.Тем не менее, я не понимаю, почему я должен перезагружать мой компьютер, когда служба использовалась для отмены регистрации без необходимости перезапуска до того, как я получил ошибку 1053. Если, конечно, я не могу отменить регистрацию службы, потому что службане был остановлен, потому что он перестал отвечать.
Я продолжу пробовать еще кое-что, но у меня заканчиваются идеи.
ОБНОВЛЕНИЕ2:
Я попытался восстановитьоригинальное приложение, которое я знаю, работало как сервис.Это означает, что проблема не связана с моим кодом.Что-то не так с диспетчером управления службами.Я не понимаю, почему я получаю эту ошибку только с этим приложением.У меня есть другое приложение, которое связывается с этим приложением, которое также должно быть зарегистрировано как услуга.У меня нет проблем с этим приложением.Это работает отлично.
Но по какой-то причине это приложение просто перестало отвечать внезапно.Я не знаю, что я изменил или сломал, чтобы служба зависала еще до того, как она достигла моей функции main()
.Единственное, что я могу придумать сейчас, чтобы исправить проблему, это переформатировать сервер, который не является опцией.
Спасибо, Krzys