【问题标题】:What is the easiest way to log exceptions from a WCF service to a the Windows Event Log?将 WCF 服务中的异常记录到 Windows 事件日志的最简单方法是什么?
【发布时间】:2011-07-21 15:46:25
【问题描述】:

我想将 WCF 服务器中的所有异常(包括序列化异常堆栈跟踪)记录到 Windows 事件日志(也可以接受 log4net 日志记录)。

最简单的方法是什么?

特别是序列化、服务本身等中的所有错误。现在我正在使用跟踪来获取开发过程中的序列化错误。跟踪是我可以找出哪些对象实际上存在序列化问题的唯一方法。有关获取序列化堆栈跟踪的示例,请参阅 Quickly finding WCF Serialization/Deserialization Issues

我可以处理服务代码本身的错误。但是,WCF 机制中的错误不会传播到我的服务代码(如序列化错误)。

我不需要将错误发送给客户端。

我只想将错误放到一个位置(例如事件日志)。

现在(根据我的研究),带有一些自定义代码的 IErrorHandler Interface 似乎是最好的方法。使用 IErrorHandling 接口会捕获序列化异常吗?

编辑: 这可能是我正在寻找的答案: How do I create a global exception handler for a WCF Services?

我只想确认这将捕获序列化错误,更重要的是这些错误的详细信息

更多信息: How do I create a global exception handler for a WCF Services?

【问题讨论】:

    标签: wcf exception-handling


    【解决方案1】:

    是的,IErrorHandler 也会捕获序列化异常。您将获得存储在异常中的所有信息。这对你来说是否足够详细,我不能说。

    请注意,可能存在永远不会到达服务器的客户端错误(序列化和其他错误)。你不会看到那些带有 IErrorHandler 的。

    【讨论】:

    • 客户端没问题。到目前为止,这很容易解决。困难的问题是深埋在 WCF 中的异常错误,我无法在没有跟踪的情况下找到)。
    • @telewin 您知道是否可以捕获异常,例如,客户端将字符串发送到 int32 字段?在我的测试中,这似乎是不可能的,但你可能比我更了解
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2011-06-17
    相关资源
    最近更新 更多