我已经编写了一个小型Windows服务,我希望每天在Windows Server 2008上运行。该服务是用C#编写的。
但是在命令行上运行时:
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()方法中编写了所有代码,也许这不是最好的主意,但我不知道在哪里输入它。
如果有人可以提供帮助,我会非常感激。
答案 0 :(得分:5)
OnStart事件用于启动将负责处理的后台线程。如果OnStart方法完成且没有错误,则服务管理器假定服务已成功启动。因此,OnStart应该尽快返回。
然后使用OnStop方法停止后台处理。成功的OnStop告诉服务管理器服务已关闭且没有错误。