如何在IDispatchMessageInspector中获取异常对象



MyWCF应用程序在发生错误和未发生错误时使用IDispatchMessageInspector进行某些高级监视。

当我使用IDispatchMessageInspector.BeforeSendReply方法时,我正在寻找一种方法来获取服务中发生的异常,因为我需要根据异常类型执行特定操作。

我不是想要修改\记录我的错误,因为我已经使用自定义IErrorHandler进行了修改\记录

当我在IErrorHandler中时,我曾想过将异常添加到OperationContext中,当我回到IDispatchMessageInspector中时,只需简单地读取它,但我更喜欢内置的东西。

当我使用IDispatchMessageInspector.BeforeSendReply方法时,有什么方法可以获取异常吗?也许在OperationContext上?

IDispatchMessageInspector接口允许您查看在发送消息之前到达端点的消息,以及在将其发送回客户端之前的相应响应消息。

关于BeforeSendReply()方法需要注意的几点可能有用:

  • 如果消息被调度到的操作是单向的操作,上的WCF运行时仍将调用此方法当操作具有执行完毕。然而,代表响应消息将为null,所以一定要检查在操作消息之前
  • 如果操作通过检查IsFault属性。这甚至适用于单向操作(即使客户端永远看不到它,服务器端dispatcher仍然正确地通知消息检查器)

相关内容

  • 没有找到相关文章

最新更新