簡體   English   中英

如何在IDispatchMessageInspector中獲取異常對象?

[英]How can I get the exception object inside a IDispatchMessageInspector?

我的WCF應用程序使用IDispatchMessageInspector進行一些高級監視- 發生錯誤時以及沒有發生錯誤時

我正在尋找一種獲取IDispatchMessageInspector.BeforeSendReply方法時服務中發生的異常的方法,因為我需要根據異常類型執行特定的操作。

希望通過自己的IErrorHandler來修改/記錄錯誤。

我曾考慮過在IErrorHandler中將異常添加到OperationContext中,而當我回到IDispatchMessageInspector時僅讀取該異常,但是我更喜歡內置的東西。

當我處於IDispatchMessageInspector.BeforeSendReply方法中時,有什么方法可以獲取異常? 也許在OperationContext上的某個地方?

IDispatchMessageInspector接口使您可以查看在分派之前到達端點的消息,以及在將其發送回客戶端之前的相應響應消息。

關於BeforeSendReply()方法可能需要注意的BeforeSendReply()

  • 如果將消息分派到的操作是單向操作,則該操作完成執行后,WCF運行時仍將在IDispatchMessageInspector實現上調用此方法。 但是,代表響應消息的“ reply”參數將為null,因此請確保在處理該消息之前先進行檢查。
  • 通過檢查回復消息的IsFault屬性,可以在實現中檢測消息是否已調度為引發異常/故障。 甚至對於單向操作也是如此(即使客戶端永遠不會看到它,服務器端調度程序仍會正確地通知消息檢查者有關此信息)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM