【问题标题】:Self starting and fault exceptions自启动和故障异常
【发布时间】:2025-10-10 09:05:02
【问题描述】:

处理 WCF 服务可能发生的任何故障的最佳方法是什么?因此,除了服务/WCF 本身中的 try/catch 之外,如果客户端出现故障,例如系统出现故障(即 MSMQ 在集群上出现故障或其他情况)怎么办?这样的事情会导致 WCF 服务主机出现故障。

如何在 x 秒后安全地重新启动服务?我试过这样做,但即使我在进入故障状态时在 Abort() 之后创建了一个新的 ServiceHost,我总是会收到一条错误消息,指出通信通道出现故障或已关闭。

如果服务主机应用出现故障,您可以推荐什么好的解决方案来重新启动它,并在它出现故障后成功地重新建立该主机?

【问题讨论】:

    标签: c# wcf wcf-client


    【解决方案1】:

    尝试将 WCF 服务实现为 Windows 服务。在这种情况下,当服务器重新启动时,您的主机也将重新启动。您应该实现从 ServiceBase 继承的 Windows Service 类,然后覆盖 OnStart 和 OnStop 方法。

    【讨论】:

    • 谢谢,但不幸的是,考虑到项目的性质,将其变成 Windows 服务并不是解决方案:(