2012-05-30 2 views
3

У меня есть приложение для Windows, которое я установил на своем компьютере без проблем. Я пошел, чтобы установить его на другую машину, и я получаю сообщение об ошибкеОшибка при установке службы Windows - служба не ответила на запрос запуска или управления своевременно

Ошибка 1001. Исключение произошло во время фазы фиксации установки. Это исключение будет проигнорировано, и установка будет продолжена. Однако после завершения установки приложение может работать неправильно. Не удается запустить службу MyService на компьютере. '. Служба не ответила на запрос запуска или контроля своевременно.

Эта ошибка появляется сразу же без каких-либо зависаний. Обычно я ожидал увидеть эту ошибку после зависания.

Я использую среду .NET 4, которая установлена ​​на обеих машинах. Я попытался отключить антивирусную программу, которая могла бы помешать запуску службы, но это дало ту же ошибку. Брандмауэр также был отключен.

Есть ли что-нибудь еще, что может вызвать эту проблему?

+0

Почти наверняка происходит исключение, возможно, при запуске. Вы регистрируете исключения, которые в противном случае могли бы избежать реализации вашей службы? –

+0

Да, в операции OnStart я получаю исключение со следующей информацией: ** Сообщение об исключении: ** Не удается запустить CHD на компьютере. ' ** Трассировка стека: ** в System.ServiceProcess.ServiceController.Start (String [] арг) в System.ServiceProcess.ServiceController.Start() в CHD.ProjectInstaller.OnCommitted (IDictionary savedState) ** Источник: * * System.ServiceProcess Внутреннее исключение: System.ComponentModel.Win32Exception (0x80004005): служба не ответила на запрос запуска или управления своевременно – Poosh

+1

Если вы можете сообщить нам, какая работа выполняется службой при запуске, это поможет мы ответим на ваш вопрос. – hatchet

ответ

3

Спасибо за вашу помощь. Я понял, что проблема связана с .NET Framework, установленной на двух разных машинах. У моей машины был профиль клиента .NET Framework 4 и .NET Framework 4 Extended, а на другой машине был только профиль клиента .NET Framework 4. Очевидно, для некоторых компонентов в службе нужны библиотеки, которых нет в профиле клиента .NET Framework 4.

3

Такое поведение обычно возникает, когда исключение выбрано в WinService OnStart method и не попадает в блок try-catch. Я считаю, что вы можете проверить сообщение об исключении и трассировку стека с помощью EventViewer, если вы не можете легко реализовать простую функцию ведения журнала, используя EventLog class.

Иногда исключение выбрасывается из-за того, что служба не работает под привилегированной учетной записью. Чтобы исправить это, вы должны настроить ваш монтажника ServiceProcessInstaller object как следующее:

myServiceInstaller.Account = ServiceAccount.User; 
myServiceInstaller.Username = "Domain name\User name"; 
myServiceInstaller.Password = "qwerty"; 
+0

Другая распространенная причина может заключаться в том, что кто-то забыл скомпилировать ее как службу windows вместо приложения winforms. Иногда я забываю об этом сам, потому что я всегда использую приложение winforms для отладки службы. –

1

Поскольку ваша служба работает на другом компьютере, и предполагая, что код является одинаковым для обоих, этот вопрос может быть что-то, что связано с правами доступа. Убедитесь, что учетная запись, на которой работает ваша служба, имеет достаточные разрешения для любых папок, в которых она записывает файлы. Если вы записываете в журнал событий, убедитесь, что для учетной записи службы необходимы необходимые разрешения.

Смежные вопросы

 Смежные вопросы