2013-04-23 90 views
1

我有一個使用WCF回調contract.This使用netTcp綁定爲客戶端服務器通信開發的聊天應用程序。WCF在負載平衡服務器回調

客戶端是一個Windows窗體應用程序將在客戶機上運行(XP或Windows8的機器)

這WCF服務託管在服務器machine.I一個窗口服務我的服務維護客戶端會話列表,這將存儲關於連接到服務器的每個客戶端的詳細信息,該列表是靜態變量。

工作流程是,每當客戶端使用連接操作連接到服務器時,客戶端詳細信息將被添加到客戶端會話列表中,服務器將使用此會話列表將消息發送回客戶端需要。

在單服務器環境中一切正常,現在我想知道如何處理負載平衡情況下,這意味着我有兩臺服務器機器,在一次一臺服務器將active.if服務器1是失敗,服務器2將被激活。在這種情況下,如何管理我的客戶端會話在兩臺服務器之間共享,並像平常一樣工作,不讓客戶感到不安?

回答

2

一種選擇是使用會話狀態存儲提供程序,它將爲服務器服務的兩個實例提供會話狀態。

正如MSDN指出:http://msdn.microsoft.com/en-us/library/z414bbk9(v=vs.100).aspx

爲Web場配置,它可以存放使用 或者ASP.NET狀態服務或Microsoft SQL Server數據庫的過程。

ASP.NET狀態服務是相當有據可查http://msdn.microsoft.com/en-us/library/ms178581(v=vs.100).aspx

對於數據庫解決方案......嗯......你有開銷的增加,分析,由於數據庫的訪問。

此外,如果您使用IIS託管服務,則可以考慮使用Out-of-Process會話狀態(http://technet.microsoft.com/en-us/library/cc754032%28v=ws.10%29.aspx)。

這些只是一些想法。您可以查看其他可用於Microsoft技術的Web場同步技術。