2011-12-02 68 views
2

我有三個分層的.NET Web應用程序在Web層(共4個Web服務器)和另一個負載F5負載平衡器(粘性會話)前面的Web負載平衡器會話)在Web層和應用程序層之間(總共4個應用程序服務器)。底層數據庫是集羣的。.NET Web應用程序和負載平衡器

問題

通過使用Web層和應用層之間的負載均衡器,這是管理會話狀態的唯一途徑?

如果您只在Web層前使用F5負載平衡器,那麼將使用什麼機制來處理會話狀態到應用層?

回答

2

如果您不想在負載平衡器級別使用粘性會話,則可以使用2個標準選項來進行會話狀態管理。

See msdn Session-state

配置與狀態服務器模式的應用程序,您可以配置一臺服務器來運行會話狀態的服務,和所有的應用程序配置爲指向該服務器。所以狀態被存儲在一臺服務器的內存中。

<configuration> 
    <system.web> 
    <sessionState mode="StateServer" 
     stateConnectionString="tcpip=SampleStateServer:42424" 
     cookieless="false" 
     timeout="20"/> 
    </system.web> 
</configuration> 

另一個選項是使用SQL Server模式配置您的應用程序。狀態存儲在SQL數據庫中。這是最安全的選擇,因爲會話狀態是持久的。

<configuration> 
    <system.web> 
    <sessionState mode="SQLServer" 
     sqlConnectionString="Integrated Security=SSPI;data 
     source=SampleSqlServer;" /> 
    </system.web> 
</configuration>