2
我有一個WCF服務器,它使用雙工模型維護對客戶端回調的引用。WCF客戶端關閉事件未被觸發
如果我直接關閉該服務器上的回調連接:
ICallBack callBack = OperationContext.Current.GetCallbackChannel<ICallBack>();
callBack.Close()
客戶端無法通過訂閱任接收此事件的通知:執行
client.InnerChannel.Closed += Handler;
client.InnerDuplexChannel.Closed += Handler;
無論是事件處理程序。
然而,如果我改變回調至Abort
而不是在服務器側的Close
,客戶端接收的Faulted
處理程序的通知,然後隨後的Closed
處理程序。如此放棄正常工作。
我檢查回調是處於有效狀態,那麼,爲什麼在客戶端上接收Abort
的Faulted
通知,而不是Close
的Closing
通知? Close
之後的回調狀態爲Closed
。
根據MSDN documentation使用Close
優雅地關閉回調連接將是我更喜歡的選擇,而不是更突然的Abort
。