C# 安装Windows服务时出错--该服务未及时响应启动或控制请求

C# 安装Windows服务时出错--该服务未及时响应启动或控制请求,c#,.net,windows-services,C#,.net,Windows Services,我有一个Windows服务应用程序,我已经安装在我的机器上,没有问题。我去另一台机器上安装了它,我收到了错误 错误1001。在安装的提交阶段发生异常。此异常将被忽略,安装将继续。但是,安装完成后,应用程序可能无法正常运行。无法在计算机“”上启动服务MyService。服务未及时响应启动或控制请求 此错误会立即出现,不会挂起。通常我只希望在挂起后看到此错误 我使用的是安装在两台机器上的.NET4框架。我曾尝试禁用防病毒程序,认为这可能会干扰服务启动,但也产生了相同的错误。防火墙也被禁用 是否还有其

我有一个Windows服务应用程序,我已经安装在我的机器上,没有问题。我去另一台机器上安装了它,我收到了错误

错误1001。在安装的提交阶段发生异常。此异常将被忽略,安装将继续。但是,安装完成后,应用程序可能无法正常运行。无法在计算机“”上启动服务MyService。服务未及时响应启动或控制请求

此错误会立即出现,不会挂起。通常我只希望在挂起后看到此错误

我使用的是安装在两台机器上的.NET4框架。我曾尝试禁用防病毒程序,认为这可能会干扰服务启动,但也产生了相同的错误。防火墙也被禁用


是否还有其他原因可能导致此问题?

此行为通常发生在WinService中抛出异常且未在块中捕获时。我相信您可以使用EventViewer检查异常消息和堆栈跟踪,如果没有,您可以使用

有时会引发异常,因为服务未在特权帐户下运行。要解决此问题,您必须按照以下方式配置安装程序:

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

由于您的服务在另一台计算机上运行,并且假设两者的代码相同,因此问题可能与权限有关。确保运行服务的帐户对其写入文件的任何文件夹具有足够的权限。如果您写入事件日志,请确保服务的帐户具有相应的权限。

谢谢您的帮助。我意识到问题是由于安装在两台不同机器上的.NET Framework造成的。我的机器有.NET Framework 4客户端配置文件和.NET Framework 4扩展版,而另一台机器只有.NET Framework 4客户端配置文件。显然,对于.NET Framework 4客户端配置文件中不存在的服务需要库中的某些组件,几乎可以肯定会发生异常,可能是在启动时。您是否记录了会逃逸您的服务实现的异常?是的,在OnStart操作中,我捕获了一个异常,其详细信息如下:异常消息:无法在计算机“”上启动服务CHD。堆栈跟踪:位于System.ServiceProcess.ServiceController.start(字符串[]args)在CHD.ProjectInstaller.OnCommitted(IDictionary savedState)的System.ServiceProcess.ServiceController.Start()处源:System.ServiceProcess内部异常:System.ComponentModel.Win32Exception(0x80004005):服务没有及时响应启动或控制请求。如果您可以在启动时告诉我们您的服务执行了哪些工作,这将有助于我们回答您的问题。另外,OnStart还必须在30秒内返回;通常你在一个线程中开始你的服务,然后返回。另一个常见的原因可能是有人忘记将其编译为windows服务而不是winforms应用程序。有时我自己也会忘记,因为我总是使用winforms应用程序来调试服务。