重启后Windows服务不会自动启动

我的自动启动Windows服务无法仅在重新启动时启动。 我有一个用C#创建的Windows服务,并通过Wix创建的安装程序安装。 该服务设置为自动启动。 该服务在NT AUTHORITY \ NETWORK SERVICE下安装和运行。 服务启动后,它首先进行外部Web服务调用。

在Windows 7中,我可以将服务设置为自动 – 延迟启动,服务将在重启时启动没问题。 但是,此选项在Windows XP中不可用,并且当设置为“自动启动”时,服务将因此失败

A timeout was reached (30000 milliseconds) while waiting for the MyService service to connect.

如果我尝试在登录过程后手动启动,服务启动正常,只有当服务尝试在重新启动时自动启动存在问题时,才会让我相信我需要添加到我的服务中的依赖服务让它正确启动。

任何人都可以指出正确的依赖关系或替代方法吗?

你可能有一个依赖的竞争条件。 您可以通过将服务配置为依赖于另一个服务(例如tcp / ip)来修补此问题,但我真正要做的是重写您的服务,以便在启动的关键执行路径中不需要进行此调用。 相反,如果存在需要解决的问题,它应该定期尝试稍后进行Web服务调用并记录有用的消息或将消息发送到任务栏实用程序或类似工具。

我在4台新服务器上遇到了同样的问题。 我将W32服务设置为自动延迟,它解决了这个问题。