2011-01-11 71 views
3

問候平衡,負載與IIS和ASP.NET的

我有什麼,當你的問候,如果應用程序將在一個環境中運行的編碼的ASP.NET的網站,有一個負載均衡考慮IIS?

所有用戶會話都由他們自己運行,會話之間沒有共享數據。到MSSQL的單一連接。下載的圖像和文件將託管在一臺服務器上。

Windows Server 2008's,C#和.Net 4.0。

回答

7

最明顯的項目是會話狀態。如果您負載均衡,則來自同一用戶的多個請求可能會在服務器之間移動。 ASP.NET的默認會話提供程序(in-proc)不支持此操作(每次移動時用戶都會獲得一個新會話)。最簡單的解決方案是轉移到ASP.NET狀態服務器或SQL Server會話。

僅供參考:這兩種解決方案都要求您放入Session的所有內容都是[Serializable]。進程內提供程序沒有此要求,因此您可能會看到一些運行時錯誤,並且在更改提供程序時需要修改代碼。

+0

請注意,您的負載均衡器可能有一個名爲「粘性會話」或親和性的選項,可以將用戶發送到隨機分配的同一臺服務器。這會傷害你的負載平衡,但它確實讓你繼續使用進程內會話狀態。 – David 2011-01-11 17:18:05

0

您將需要將會話狀態轉移到會話狀態服務中。避免在會話中保留對象...如果您必須在會話中保留一個對象,請確保它已用Serializable屬性標記(這是通過序列化存儲的方式)。

通常,避免使用會話。請記住,ASP.Net Session!= FormAuthentication。根據應用程序的性質,您的數據庫很可能在Web服務器之前就成爲瓶頸。