为什么Windows服务不能自动启动?

时间:2015-01-16 11:01:21

标签: .net windows service

我们有一个用C#(.Net3.5)编写的Windows服务。运行时效果很好。但是我们的支持人员报告说,虽然它总是可以手动启动,但在重新启动Windows时它并不总是自动启动。

我认为这可能与其他服务(它所依赖的)有关,而不是它们本身已经开始,但据我所知,除了自己的登录之外,服务代码并不依赖于其他任何东西。 (服务属性选项卡报告没有依赖项)。此外,服务OnStart方法的第一行是Thread.Sleep(60000),以确保所有其他服务都有机会启动。服务器是Windows Server 2008 R1,所以按我计算60秒应该绰绰有余。

我的问题是:

  1. 我如何清楚其依赖关系?
  2. .Net服务是否还有其他众所周知的原因不能自动启动?
  3. TIA

1 个答案:

答案 0 :(得分:0)

将Windows服务启动类型设置为“ServiceStartMode.Automatic”应该会有所帮助。

serviceInstaller1.StartType = ServiceStartMode.Automatic;

这行代码告诉操作系统在系统启动期间启动相关的Windows服务。此外,如果自动启动的服务取决于手动启动的服务,则手动启动的服务也会在系统启动时自动启动。 因此您不需要Thread.Sleep。您还可以查看下面有关如何将其他服务依赖项分配给Windows服务的文章:http://www.c-sharpcorner.com/UploadFile/0f68f2/adding-service-dependency-on-a-windows-service-through-regis/