2011-12-02 69 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>