2009-01-28 47 views
5

場景:向上擴展的ASP.NET會話狀態服務器

該網站託管在使用上的每個IIS三臺服務器。

所有三個服務器都使用網絡負載均衡軟件與Windows Server 2003的

所有這三個站點都配置爲會話狀態存儲已被指定爲「狀態服務器」在單獨的服務器羣集上。

我被要求擴大「狀態服務器」。有沒有辦法讓我可以有多個狀態服務器並在它們之間同步狀態,所以如果其中一個狀態服務器出現故障,其他狀態服務器將能夠提供狀態信息?

回答

6

我會去找memcached。您可以在每臺Web服務器上進行設置,然後使用添加的每臺新Web服務器進行擴展。我以前在codeplex上找到過幾個客戶端。

8

我們使用Scale Out State Server爲我工作的地方,它的工作非常出色,而且設置起來很簡單。我知道微軟也在研究一種叫做Velocity的類似產品,但我對此沒有任何經驗。

SOSS唯一的缺點是你必須爲此付出代價 - 但除了與銷售和支持團隊交流的良好體驗之外,我一無所有。如果您最終獲得許可,請幫我一個忙,讓他們知道Gratis的Daniel給您發送了;)

3

您正在尋找分佈式緩存技術。 Microsoft Velocity是由Microsoft發佈的示例,用於替換可以分發的Velocity的默認ASP.NET會話狀態。還有其他緩存提供程序,如Memcache。

編輯:更新此答案以獲取與當前時間更相關的信息,此類功能內置於Windows Azure中,並帶有AppFabric產品。關於這方面的一些簡要信息可以在這裏看到:Windows Server and Azure AppFabric virtual launch May 20th

+0

與速度的問題是,是從未正式發佈。現在已經有好幾年了,我們擁有的只有CTP。我想知道你對MS有什麼支持?此外,Velocity團隊博客已經相當長時間了,這讓我懷疑MS是否會在不久的將來殺死這個項目。 – 2010-10-28 13:57:26

+0

@Piotr Velocity是AppFabric的前身,它是Azure技術陣容的一部分,引用:http://www.hanselman.com/blog/WindowsServerAndAzureAppFabricVirtualLaunchMay20th.aspx我更新了我的答案,包括此 – 2010-10-28 15:43:02

0

SQL服務器上的會話數據庫可以很容易地擴展出來,只需很少的代碼&配置更改。您可以將asp.net會話粘貼到會話數據庫,並且無論您的服務器場中的哪個Web服務器爲請求提供服務,基於會話標識的SQL狀態服務器映射的工作都是完美無瑕的。這可能是使用SQL Server向外擴展ASP.NET會話狀態的最佳方法之一。欲瞭解更多信息,請閱讀鏈接

True Scaleout model for session state

相關問題