安装 Windows 服务时,有两个选项可用于在 Windows 启动时自动启动 Windows 服务。一种是自动,另一种是自动(延迟启动)。这两者在细节上有什么区别?
例如,如果您使用 wixtoolset 创建安装程序,则 ServiceConfig
元素具有 DelayedAutoStart
属性。这将如何影响在启动时启动服务时会发生什么?
WiX 文档:ServiceConfig Element
简而言之,设置为自动的服务将在启动过程中启动,而设置为延迟启动的服务将在启动后不久启动。
启动您的服务延迟可以提高您的服务器的启动性能,并具有安全优势,这些优势在评论中链接到的 the article Adriano 中进行了概述。
更新:“启动后不久”实际上是在最后一个“自动”服务启动后 2 分钟,默认情况下。根据 Windows Internals 和其他来源(3、4),这可以通过注册表项进行配置。
感兴趣的注册表项(至少在某些版本的 Windows 中)是:
HKLM\SYSTEM\CurrentControlSet\services\<服务名称>\DelayedAutostart 如果延迟,则值为 1,否则为 0。
HKLM\SYSTEM\CurrentControlSet\services\AutoStartDelay 或 HKLM\SYSTEM\CurrentControlSet\Control\AutoStartDelay(在 Windows 10 上):(DWORD)十进制等待毫秒数,可能需要创建这个。适用于全球所有延迟服务。