我想将WCF服务器中的所有异常(包括序列化异常堆栈跟踪)记录到Windows事件日志中(也可以接受log4net日志记录)。
最简单的方法是什么?
特别是序列化中的所有错误,服务本身等等。现在我正在使用跟踪来在开发期间获得序列化错误。跟踪是我能找出哪个对象实际上有序列化问题的唯一方法。有关获取序列化堆栈跟踪的示例,请参阅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?
答案 0 :(得分:1)
是的,IErrorHandler还会捕获序列化异常。您将获得存储在异常中的所有信息。对于你来说这个细节是否足够,我不能说。
请注意,可能存在永远不会进入服务器的客户端错误(序列化和其他错误)。你不会看到那些使用IErrorHandler。