将新的异常类型添加到WCF 4路由服务错误处理

时间:2010-12-22 00:16:18

标签: wcf routing error-handling

我正在使用WCF 4路由服务创建一个通过路由器的原型,利用错误处理功能

我有一个要求,即如果WCF服务生成自定义异常(在此方案中称为notPrimaryException),则应该以与在WCF4路由服务错误处理中处理通信异常相同的方式处理它,即,该消息应重新发送到备份列表中的端点。

现在我知道这个自定义异常从服务返回到路由器,作为消息层的错误异常,而不是在传输层返回通信异常。

我尝试使用消息检查器和IErrorHandler接口(ProvideFault和Handle Error)来识别路由器上是否发生了notPrimaryException,但是在它作为未处理的故障异常返回到客户端之前没有任何东西被拾取。我希望在路由器的某处拦截此故障并相应地重新发送消息,但我不知道是否有任何适当的行为。

有没有办法将其他异常/故障类型转移到错误处理基础架构中,还是我可能忽略了另一种方法?

谢谢和问候,

伊万

1 个答案:

答案 0 :(得分:0)

您不应该在路由器上处理应用程序错误。通常,应用程序开发人员已将FaultExceptions放在服务上,期望能够在客户端上处理它们。

如果客户端没有收到FaultException,客户端如何知道出现什么/出错?

您应该在路由器上处理的唯一错误是传输层异常,应在应用程序中处理应用程序异常。