在安装Windows服务时,有两个选项用于在Windows启动时自动启动Windows服务。一个是自动,另一个是自动(延迟启动)。这两者在细节上有什么不同?

例如,如果您使用wixtoolset创建安装程序,则ServiceConfig元素具有DelayedAutoStart属性。这将如何影响在启动时启动服务时发生的事情?

WiX文档:ServiceConfig元素


简而言之,设置为Automatic的服务将在启动过程中启动,而设置为Delayed的服务将在启动后不久启动。

延迟启动服务可以提高服务器的启动性能,并具有安全方面的好处,Adriano在评论中提到了这些好处。

更新:默认情况下,“启动后不久”实际上是在最后一次“自动”服务启动后2分钟。根据Windows内部和其他来源(3,4),这可以通过注册表项进行配置。

感兴趣的注册表项(至少在某些版本的windows中)是:

HKLM\SYSTEM\CurrentControlSet\services\<服务名称>\DelayedAutostart如果延迟则值为1,否则为0。 HKLM\SYSTEM\CurrentControlSet\services\AutoStartDelay或HKLM\SYSTEM\CurrentControlSet\Control\AutoStartDelay(在Windows 10上):(DWORD)十进制毫秒数等待,可能需要创建这个。全局适用于所有延迟服务。