我正在使用WCF服务以RESTful格式公开其功能。每个服务都遵循SOA格式,我需要部署服务的灵活性。因此,当涉及到异常处理时,我希望它们在服务级别的单点处理,而不是在全局级别处理。我想避免为每个服务API编写try / catch块。是否可以在特定于每个服务的一个公共位置处理异常。换句话说,是否有任何方法可以在WCF调用堆栈中连接,可以处理所有异常。
答案 0 :(得分:0)
我使用自定义行为扩展来做这种事情。基本上,您创建一个实现IErrorHandler的新类,然后输入您的代码来处理错误的方式和调度级别(IServiceBehavior,IEndpointBehavior,IContractBehavior等)。将错误处理程序添加到服务行为中并进行设置。
这是我在网上找到的一个例子,它用作起点(你也可以在配置文件中设置行为): http://wcfpro.wordpress.com/2010/11/18/wcf-extensions-error-handler/