将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。
客户端很好。到目前为止,这很容易解决。难以解决的问题是深埋在WCF中的异常错误,我无法在没有跟踪的情况下找到这些错误)。 – 2011-03-23 21:12:12
@telewin你知道吗,例如,当客户端发送一个字符串到一个int32字段时,是否有可能捕获异常?在我的测试中,这种接缝是不可能的,但你可能比我更清楚 – JSantos 2013-02-07 11:40:49