我有一些 Windows 服务(全部用 C# 编写)都表现出相同的奇怪行为。我将它们设置为延迟自动启动,以便它们在启动后启动(延迟,因为它们并不重要)。它们都将 WCF 服务作为客户端-服务器应用程序的一部分托管,并且如果重要的话,它们都是使用 WiX 安装的。
我注意到有时他们只是没有开始。如果您在操作系统准备就绪后足够快地查看“服务”窗口,它们的状态为“正在启动”。如果您随后刷新视图,它们将不再启动,但也不是“已启动”。然后,您可以手动启动它们而不会出现任何问题。
这不会产生错误消息和日志条目。为了让它变得更好,只有在机器关闭并再次打开时才会发生这种情况。每次重新启动都可以正常工作(在两台不同的机器上尝试了大约 20 次)
如果您将失败操作设置为在失败后重新启动服务,它似乎最终会成功启动服务,但这肯定不是理想的解决方案。
操作系统为 Windows 7 和 WinServer 2008 R2
我在这里想念什么?为什么它们无法自动启动(至少第一次)?如果计算机在重新启动或关机后启动,为什么会有所不同?
编辑: 我对失败的行为是错误的。没有解决问题。
编辑 2: 我在所有内容中添加了异常处理以记录可能的异常。但到目前为止,没有记录任何异常。