9

我有一个继承自 ServiceBase 的MyServiceBase类。在 MyService 中,我有一个用于我的 WCF 服务的 ServiceHost,它只有一个具有 IsOneWay=true 属性的方法。我用这段代码来初始化它:

host = new ServiceHost(typeof(MyService));
host.Opened += new EventHandler(host_Opened);
host.Closed += new EventHandler(host_Closed);
host.Faulted += new EventHandler(host_Faulted);
host.UnknownMessageReceived += new EventHandler<UnknownMessageReceivedEventArgs>(host_UnknownMessageReceived);
host.Open();

有时主机引发故障事件,但 *host_Faulted* 方法中的 EventArgs 始终为空,所以我无法找出它的原因。请帮忙。对此表示感谢。

4

2 回答 2

4

此链接可能对更好的 WCF 故障处理和调试方法有用:

如何防止 WCF 服务进入故障状态?

因此,我没有回答您的具体问题,而是推荐一种更好的方法来满足您的要求。

于 2012-12-10T12:42:55.997 回答
0

我今天遇到了这个问题。通过启用 WCF 跟踪,它有所帮助,但没有给我原因。经过大量的调试工作,我发现真正的原因是:使用WCF服务的客户端崩溃了。由于客户端是一个封装的 Windows 服务,并且它的状态仍然是“运行中”。

所以我的建议是:尝试/捕获客户端应用程序中的所有代码块。

于 2017-03-01T22:18:00.393 回答