簡體   English   中英

處理雙工WCF服務中的客戶端斷開連接

[英]Handling client disconnect in duplex WCF service

我試圖獲得一個WCF服務,以了解客戶端何時斷開連接。

在閱讀本文后, 關於斷開連接的wcf通知我設法讓測試項目正常工作。

客戶端和服務器保持打開狀態,直到我關閉客戶端,然后在下面的行中超時后,OperationContext.Current.Channel.Closed事件似乎觸發。

<reliableSession enabled="true" ordered="true" inactivityTimeout="00:01:00" />

經過測試后,我按照自己的意願工作,然后嘗試將其集成到一個更大的項目中。

這似乎表現不同,因為即使客戶端仍處於打開<reliableSession ordered="true" inactivityTimeout="00:01:00" /> ,OperationContext.Current.Channel.Closed甚至會在config <reliableSession ordered="true" inactivityTimeout="00:01:00" />指定的時間后觸發。

我注意到的不同之處在於我無法在配置中指定enabled =“true”屬性。 第二個項目使用WSDualHTTPBinding,而第一個項目使用WSHTTPBinding。

我的問題是為什么第二個項目以這種方式表現,我怎么能讓它像第一個一樣?

如果您需要任何代碼文件或配置發布,請告訴我,我會直接讓他們。

親切的問候

HTTP協議本質上是無狀態的,純粹是請求/回復。 WSDualHTTPBinding的工作原理是它在服務器和客戶端上打開通道,當服務器准備發送消息時,它將使用客戶端托管的通道發送消息。 所以可能發生的事情是客戶端上的連接被打開,沒有聽到一分鍾,這被檢測為“非活動”,然后客戶端關閉連接。 我不確定您的要求是什么,但您可能要考慮切換到TCPBinding,因為這是一個有狀態連接。

客戶端是否能夠從服務器接收消息? 消息是否定期發送? 您確定客戶端實際上是否保持連接打開狀態?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM