我们有用C#(.Net3.5)编写的Windows服务。运行时完美。然而,我们的支持人员报告说,尽管它可以始终手动启动,但在Windows重新启动时,它不会始终自动启动。为什么Windows服务不自动启动?
我注意到这可能与其他服务(它依赖于它)本身并没有启动,但据我所知,除了它自己的登录服务代码不依赖于其他任何东西(服务属性选项卡报告没有依赖关系)。此外,服务OnStart方法的第一行是一个Thread.Sleep(60000),以确保所有其他服务都有机会启动。服务器是Windows Server 2008 R1,所以通过我的推算60秒应该是绰绰有余。
我的问题是:
- 我怎样才能清楚它的依赖?
- 是否有任何其他众所周知的.Net服务不能自动启动的原因?
TIA
这可能对您有帮助http://msdn.microsoft.com/en-us/library/ddhy0byf %28v = VS.90%29.aspx –
沉睡在OnStart是一个非常糟糕的主意 - 调用OnStart的线程不属于你 - 你打算让事情开始并及时退出OnStart。另外,除非*你*已经告诉窗口关于你的依赖关系,否则你不会看到任何服务依赖关系。 –
好的,也许这是不好的建议(来自这个论坛的另一个问题/答案)。但是,我怎么知道'依赖关系'是什么?代码不会访问任何其他日志记录到Sql Server(可能在同一台计算机上),并且它不需要任何其他Windows服务本身,据我所知。 –