2013-03-13 42 views
0

我想寫一個selfhosted .NET服務的工作流程是這樣的:檢查客戶端連接到工作流服務

enter image description herehttp://i.stack.imgur.com/Hij20.png

但我怎麼能確定客戶端是否還活着? WCF綁定的InactivityTimeout似乎不會觸發。我可以寫一個超時功能(測量最後一次請求之間的時間)。但是這並不能確保客戶端斷開連接並且不僅僅是閒置。 .NET框架中沒有常用的方法嗎?

謝謝。

+0

工作流服務是一個WCF服務,您本身不連接到WCF服務。客戶端調用服務方法並且(通常)接收回應。你的客戶意味着什麼*活着*? – Joao 2013-03-13 18:36:08

+0

@Jota服務實例在循環中保持活動狀態,直到調用ExitWf。所以客戶可以按照自由度順序多次調用函數。但是,如果客戶例如崩潰ExitWF從不被調用,並且該實例永遠不會被刪除 – Mimefilt 2013-03-18 11:00:43

回答

0

您從某處運行此服務,並且必須運行服務器以獲取服務的響應。您可以使用此代碼製作回撥服務器:

var host = new ServiceHost(serviceCallback, new Uri("localhost:8080")); 

然後在服務中您需要將信息發送回此地址。所以你可以在調用者客戶端動態地跟蹤你的服務的當前狀態。