我有托管几个 WCF 端点的托管 Windows 服务。该服务设置为在 PC 重新启动时自动启动。重新启动时,我发现这行代码:
ServiceHost wcfHost1 = new ServiceHost(typeof(WCFHost1));
在服务的 OnStart() 方法中执行需要 15 - 20 秒。实际上我有两个这样的语句,但第二个是在瞬间执行的。这是第一个需要这么长时间的。有谁知道可能导致瓶颈的原因?因此,有时调用超过 30 秒,因此 SCM 认为我的服务在尝试初始化时超时。现在,我知道我很容易分离一个线程来执行此操作并立即从 OnStart() 返回,但我想知道是什么导致了这种延迟。
仅当服务在 PC 重新启动时启动时才会发生这种情况。如果 PC 已启动并正在运行,则服务将在不到一秒的时间内启动和停止。