我已经创建了一个之前在多台计算机上运行的服务,并且在调试时工作正常。但无论出于何种原因,它都不会安装在我最近尝试的任何计算机上。
以下是我遇到的问题:
如果我打开“安装后打开”属性,程序将无法安装。代码如下:
new ServiceController(serviceInstaller1.ServiceName).Start();
每当我尝试在禁用上述代码的情况下安装服务时,它实际上都会安装。但是,当我尝试手动启动时,服务拒绝启动。我得到以下
“错误1053:服务没有及时响应启动或控制请求。”
我尝试过的事情
在你提出之前
我的问题是,为什么这个程序在调试时会完美运行但在3天前完美运行之后就不再安装了?
答案 0 :(得分:1)
如果没有看到你的代码,这只是一个有根据的猜测,但错误正在给你一个很大的线索来解决这个问题:
“错误1053:服务没有及时响应启动或控制请求。”
这意味着您的服务的启动方法不能足够快地返回系统。当您调试服务时,它实际上并不作为服务启动,因此此检查永远不会触发。如果这在一段时间之前有效,那么你必须在start方法中添加一些额外的处理。
唯一的解决方案是将所有处理移出start方法。通常的方法是在start方法中启动后台工作线程,以便它尽可能快地返回并在线程中执行所有处理。然后只要需要完成它就可以。