服务无法启动,但会启动

本文关键字:启动 服务 | 更新日期: 2023-09-27 17:56:12

我写了一个小型的Windows服务,我想每天在我的Windows Server 2008上运行。该服务是用 C# 编写的。

  • 代码在正常情况下效果很好窗口窗体。
  • 当我从"服务管理"窗口 (services.msc) 启动和停止它时,该服务的工作方式就像它应该的那样。

但是当在命令行上运行它时:

net start Service1

我得到以下内容:

The Service1 service is starting........  The Service1 service could not be started.
The service did not report an error.
More help is available by typing NET HELP:SG 3534.

奇怪的是,该服务仍在运行,在"服务"屏幕中,我仍然看到它正在启动,直到它完全启动。当我之后尝试停止服务时,我得到:

The service could not be controlled in its present state.
More help is available by typing NET HELPMSG 2189

然后服务停止。有什么办法可以解决这个问题吗?我已经设法调试了服务,没有任何问题,代码有效。但是在调试期间,命令控制台上仍然会发生同样的事情,而我仍然可以进一步调试。

这就像 onStart() 方法上有某种超时。我不知道。。我对Windows服务相当陌生(这是我的第一个)。我确实在onStart()方法中编写了所有代码,也许这不是最好的主意,但我不知道在哪里键入它。

如果有人能帮忙,我将不胜感激。

服务无法启动,但会启动

OnStart 事件用于启动将负责处理的后台线程。如果 OnStart 方法完成且没有错误,则服务管理器假定服务已成功启动。因此,OnStart 应尽快返回。

然后使用 OnStop 方法停止后台处理。成功的 OnStop 会告诉服务管理器服务已关闭且没有错误。