如何找出ServiceHost Faulted事件的原因

时间:2012-12-10 10:48:10

标签: c# wcf windows-services servicehost

我有一个继承自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();

有时候主机会引发Faulted事件,但* host_Faulted *方法中的EventArgs总是为空,所以我找不到它的原因。 请帮忙。 谢谢。

2 个答案:

答案 0 :(得分:4)

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

How do I prevent a WCF service from enter a faulted state?

因此,我建议您更好地满足您的要求,而不是回答您的具体问题。

答案 1 :(得分:0)

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

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

相关问题