我正在使用客戶端代理對象來訪問WCF頻道。要訪問任何服務方法,該調用將被包裝在try-catch中以確保定義良好的行爲。我應該如何重新打開一個失敗的WCF頻道?
但是,一旦通道因任何原因無法使用,我想重新打開它。什麼是正確的方法來做到這一點?我看到兩個問題:
1.當在通過該故障,中止等接入方式
- 通道的事件
2.如何執行重新打開
這讓我很困擾一點點。如果我理解正確的情況,我必須分別處理每種可能的狀態。另外,如果同時收到兩個方法調用(只適用於前一點的選項A),可能必須避免線程問題,例如打開通道兩次。
我記得重新打開頻道時需要考慮很多事情。它需要區分Faulted和Closed(和Closing),操作順序很重要,某些操作會使對象(?)無效。
而且,如果這沒有足夠的麻煩,MSDN顯然提供了錯誤的示例代碼(缺少的情況下,sloppily處理邊緣條件等),所以我不能依靠這一點。
不知道你看過他的問題一路過關斬將。他只想考慮一個案例是Faulted。你將如何處理其他案件? –
@Lucas:任何其他情況都是一樣的 - 頻道不能重新打開。一旦頻道出現故障,關閉或關閉,它就消失了。 –