Служба не отвечает - ошибка 1053 - PullRequest
0 голосов
/ 20 июля 2011

Программа запускается правильно, если я дважды щелкаю ее или отлаживаю с 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

1 Ответ

2 голосов
/ 21 июля 2011

Я чувствую себя глупо.

Я использовал Remote Desktop Connection для подключения к этому серверу. Ну, служба запускается и выдает ошибку. Причина, по которой я не увидел никаких ошибок или окон сообщений, заключалась в том, что они появлялись в сеансе консоли. Я не был подключен к сеансу консоли. Я подключился к серверу, используя:

mstsc.exe / admin

И теперь я вижу, где программа перестает отвечать.

Приятно тратить 10 часов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...