2013-03-28 77 views
0

我正在使用WCF服务以RESTful格式公开其功能。每种服务都遵循SOA格式,我需要灵活性来部署服务。因此,在处理异常时,我希望在服务级别处理它们,而不是在全局级别处理。我想避免为每个服务API编写try/catch块。可以在每个服务特有的一个通用位置处理异常。换句话说,是否有任何方法可以在WCF调用堆栈中连接到可以处理所有异常的地方。WCF REST服务级别的异常处理NOT全局

+1

http://stackoverflow.com/questions/6875267/adding-global -error-handling-to-wcf-rest-service –

+0

同意。但我想在服务级别上做。这个想法是使服务自成一体的SOA。在这个建议的解决方案中,我需要在所有服务托管的全球层面处理它。 – Hunter

回答

0

我已经使用自定义行为扩展来做这种事情。基本上,你创建一个实现IErrorHandler的新类,然后把你的代码放在你想要的错误处理方式以及调度级别(IServiceBehavior,IEndpointBehavior,IContractBehavior等)中。将错误处理程序添加到服务行为中,然后进行设置。

下面是一个例子,我在网上找到它看作是一个起点使用(你也可以设置配置文件的行为): http://wcfpro.wordpress.com/2010/11/18/wcf-extensions-error-handler/