2010-03-15 103 views
0

WCF服務基於NetTcpBinding。可能發生的情況是客戶端默默消失,使服務器不知道它不再連接。如何判斷基於NetTcp的WCF連接是否中斷?

我目前正在使用一個線程,ping所有連接的客戶端,看他們是否還活着,並刪除斷開連接的客戶端。

  • ping線程是解決問題的正確方法,還是有更好的,可能的基於事件的方式?
  • 我是否必須圍繞通過try/catch與客戶端進行通信的每個代碼並將其從連接的客戶端列表中另外刪除?
+1

你認爲「服務器認爲它仍然連接」是什麼意思? – Andrey 2010-03-15 10:30:05

回答

2

我相信我自己找到了答案。

有一個事件OperationContext.Current.Channel.Closing是在故障以及關閉連接時觸發的。

+1

由於沒有人提出了不同的答案,我會同意自己。 – mafu 2010-04-04 20:57:13

+1

不錯的選擇。 :) – GONeale 2010-04-17 13:36:26