【问题标题】:How to find out the reason of ServiceHost Faulted event如何找出 ServiceHost Faulted 事件的原因
【发布时间】:2012-12-10 10:48:10
【问题描述】:

我有一个继承自 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 总是为空,所以我无法找出它的原因。 请帮忙。 谢谢。

【问题讨论】:

标签: c# wcf windows-services servicehost


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢。这个链接对我帮助很大
  • 这很有帮助,但没有回答实际问题。如何获取导致服务出错的异常堆栈?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2011-06-23
    • 1970-01-01
    • 2012-10-19
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    相关资源
    最近更新 更多