我开发了一个处理 HTTP 请求的小型 WCF 服务。
我想知道发生的每一个错误:
- 从合同视图中导致 500 Internal Server Error 的所有内容
- 从绑定视图中导致 CommunicationException 的所有内容(我编写了一个自定义的,但也在使用标准的)
应将错误放入 Windows 事件日志中。
我的问题是:
- 是否有可能为整个 WCF 堆栈添加一个中央事件处理程序,它捕获所有异常并将它们打印到事件日志中?
问候。
我开发了一个处理 HTTP 请求的小型 WCF 服务。
我想知道发生的每一个错误:
应将错误放入 Windows 事件日志中。
我的问题是:
问候。
为此,您可以使用该IErrorHandler
界面。
在服务器端 - 是的,正如 John 已经指出的那样,您基本上可以IErrorHandler
在服务类上实现接口并捕获该端的所有错误。
但是,在客户端,您只需要使用良好的旧 .NETtry {...} catch {...}
来保护所有服务调用 - 毕竟,您可能
这些将是CommunicationExceptions
(或其后代)并且必须在发生时在客户端进行处理。
因此,您可以集中处理服务器端的事情(至少只要消息已经通过您的服务类并正在处理中)——其他任何事情都必须单独处理。
马克