我想知道什麼是處理WCF服務中的超時的正確方法。在WCF服務中處理超時
我有一個使用會話的服務。客戶端執行Connect,各種調用(用戶與客戶端應用程序交互),然後在某個時刻執行Disconnect。 Disconnect操作在服務器上執行清理(例如釋放COM對象)。但是,客戶端可能(異常)終止(出於各種原因)而不調用斷開連接。 receiveTimeout
過期後,服務會中止。我需要以某種方式處理這個問題,以便我能夠妥善清理會議。我怎樣才能做到這一點?
是否有我能處理的事件?一個我可以用它來實現和定製服務的接口?我看了,但沒有發現什麼。 IErrorHandler
不幫助超時。
我想到了服務上的定時器,每次調用服務時都會重置該定時器。當計時器過去時,客戶端被認爲是斷開的,服務可以清理會話。這是否合適? (此間隔應始終小於綁定的receiveTimeout
。)
這的確有竅門。謝謝。 –