将WCF服务中的异常记录到Windows事件日志的最简单方法是什么?

问题描述:

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

这样做最简单的方法是什么?

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

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

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

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

现在(从我的研究中)看来IErrorHandler Interface带有一些自定义代码可能是继续进行的最佳方式。将使用IErrorHandling interace捕获序列化异常?

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

我只是想确认,这将赶上系列化错误,更重要的是细节这些错误,也。

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

是,IErrorHandler也将赶上系列化例外。您将获得存储在例外中的所有信息。对于你来说这个细节是否足够,我不能说。

请注意,可能存在客户端错误(序列化和其他),它们永远不会将其发送到服务器。你不会看到那些IErrorHandler。

+0

客户端很好。到目前为止,这很容易解决。难以解决的问题是深埋在WCF中的异常错误,我无法在没有跟踪的情况下找到这些错误)。 – 2011-03-23 21:12:12

+0

@telewin你知道吗,例如,当客户端发送一个字符串到一个int32字段时,是否有可能捕获异常?在我的测试中,这种接缝是不可能的,但你可能比我更清楚 – JSantos 2013-02-07 11:40:49