我有一個WCF
客戶端需要關閉其與服務器的連接,以防未有超過X秒的呼叫時間。 我的服務器有很長的inactivityTimeout
我不能改變(我可以做的唯一的變化是在客戶端的一側)手動跟蹤WCF客戶端的不活動時間
閱讀我明白,我不能爲了做到這一點使用WCF's
配置後,所以我想跟蹤時間在我的客戶端手動進行的呼叫之間。 如果客戶端未超過X秒的呼叫,我將關閉該連接。
我認爲有2種方法來實現它,但我不喜歡它們中的:
添加一些代碼,以我的全部功能,將節省通話時間。
使用
IClientMessageInspector
- 在這種情況下,我需要將呼叫的時間發送到一個外部類,該類將保存這些數據,並且如果它識別到服務器的呼叫尚未已經做了X秒。
我期待像將調用每個調用服務器的事件一個簡單的解決方案,這樣的時間跟蹤斷開所有的邏輯將在同一類(WCF's
客戶端代碼)或發生可能需要使用WCF's
配置的某種方式,以便在X秒以上不活動的情況下自動關閉連接。
我使用的綁定是netTcpBinding
關於如何實現它reliableSession
任何想法?
爲什麼要在通話之間保持會話打開?理想情況下,您可以在每次通話後關閉連接。 – PatFromCanada
系統中有一部分我無法更改,這部分還使我保存一個公開會話,直到我的客戶關閉應用程序。 我遇到的問題是我無法知道客戶端什麼時候關閉了應用程序,因此如果它已經閒置超過X秒,我正試圖關閉連接。 – Shay