我们有一个用C#(.Net3.5)编写的Windows服务。运行时效果很好。但是我们的支持人员报告说,虽然它总是可以手动启动,但在重新启动Windows时它并不总是自动启动。
我认为这可能与其他服务(它所依赖的)有关,而不是它们本身已经开始,但据我所知,除了自己的登录之外,服务代码并不依赖于其他任何东西。 (服务属性选项卡报告没有依赖项)。此外,服务OnStart方法的第一行是Thread.Sleep(60000),以确保所有其他服务都有机会启动。服务器是Windows Server 2008 R1,所以按我计算60秒应该绰绰有余。
我的问题是:
TIA
答案 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/