我有一个 WCF 服务,它使用企业库进行异常处理和 WCF 验证集成。他们似乎没有一起工作。
我想要的是:
- 如果我的服务抛出任何类型的异常,WCF Exception Shielding 将捕获这个并抛出一个
FaultException<MyServiceFault>
. - 如果传入的消息验证失败,服务应该继续抛出一个
FaultException<ValidationFault>
.
但是,我不知道如何告诉异常屏蔽策略让验证异常通过。
我有一些企业库配置,可以将每个异常转换为FaultException<MyServiceFault>
. 如果我让 EnterpriseLibrary 记录它捕获的异常,它会说它得到一个
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF.FaultContractWrapperException
当验证失败时。但是,如果将此异常作为一个新的添加到配置<exceptionType>
中postHandlingAction
,None
我仍然会FaultException<MyServiceFault>
在验证失败时被抛出。
是否可以使用 WCF 异常屏蔽来捕获除 WCF 验证异常之外的所有异常?如果没有,我将不得不为可能引发的所有不同异常添加更多配置——在这种情况下,异常屏蔽的意义何在?