C#服务不再启动

时间:2016-12-08 23:51:55

标签: c# service

我已经创建了一个之前在多台计算机上运行的服务,并且在调试时工作正常。但无论出于何种原因,它都不会安装在我最近尝试的任何计算机上。

以下是我遇到的问题:

  • 如果我打开“安装后打开”属性,程序将无法安装。代码如下:

    new ServiceController(serviceInstaller1.ServiceName).Start();
    
  • 每当我尝试在禁用上述代码的情况下安装服务时,它实际上都会安装。但是,当我尝试手动启动时,服务拒绝启动。我得到以下

  

“错误1053:服务没有及时响应启动或控制请求。”

我尝试过的事情

  • 使用“sc delete”。除非我那么愚蠢,否则该服务已100%卸载。
  • 卸载程序
  • 按照我之前(当它工作时)的相同指南重建安装项目
  • 执行此操作后重新启动

在你提出之前

  • 未进行任何系统更改

我的问题是,为什么这个程序在调试时会完美运行但在3天前完美运行之后就不再安装了?

1 个答案:

答案 0 :(得分:1)

如果没有看到你的代码,这只是一个有根据的猜测,但错误正在给你一个很大的线索来解决这个问题:

  

“错误1053:服务没有及时响应启动或控制请求。”

这意味着您的服务的启动方法不能足够快地返回系统。当您调试服务时,它实际上并不作为服务启动,因此此检查永远不会触发。如果这在一段时间之前有效,那么你必须在start方法中添加一些额外的处理。

唯一的解决方案是将所有处理移出start方法。通常的方法是在start方法中启动后台工作线程,以便它尽可能快地返回并在线程中执行所有处理。然后只要需要完成它就可以。