我有一個使用netTCPBinding在雙工通道上工作的WCF服務和WCF客戶端。在調用WCF中的回調方法之前檢查客戶端狀態
我連接的用戶存儲在一個字典(Dictionary<int userID,CallbackInstance instance>
)
當用戶經常斷開連接,從服務調用Disconnect,我從我的連接用戶列表中刪除用戶。它工作正常。
但是當客戶端pc斷開連接時,客戶端無法調用Disconnect方法,因此客戶端仍然在連接的用戶列表中,這就是問題所在。因爲當我的WCF服務器爲在線用戶檢查服務器的回調時,服務器嘗試調用客戶端的回調方法,但客戶端不可用,並且我的WCF服務器應用程序崩潰。
是否可以在調用回調實例之前檢查客戶端狀態?
**確保所有屬性超時設置爲自動刪除非活動客戶** - 很抱歉,但我不知道該怎麼做 –
@WaelGamal只需設置各種超時屬性,然後換你的聽衆/發件人在try catch塊中以捕獲超時異常 – Wobbles
@WaelGamal http://msdn.microsoft.com/en-us/library/system.servicemodel.nettcpbinding(v=vs.110).aspx http:// msdn .microsoft.com/en-us/library/0yd65esw.aspx – Wobbles