SQL Server会话状态,Web场和计算会话

时间:2012-03-23 17:56:51

标签: asp.net sql-server iis-7 session-state

我有2个负载均衡的Web服务器。我的应用程序在SQL Server 2008上使用SQL Server会话状态数据库。

两个Web服务器在IIS配置方面是相同的,如果我理解正确,两个服务器上的两个Web应用程序将映射到ASPStateTempApplications表中的相同应用程序ID,因为它们具有相同的IIS配置。因此,计算与此应用程序ID相关联的会话数(来自ASPStateTempSessions表格)将导致两个Web服务器上的会话总数。

我的问题是: 有没有办法知道每台服务器上有多少会话活动?

我遇到的问题是,当我从服务器中取出一台服务器时,我想知道服务器上是否还有活动会话,然后再回收它。

另一种情况是,如果我必须在其中一台服务器上回收IIS,因为同一服务器上的另一个Web应用程序崩溃,我想知道当我这样做时会影响多少会话。

感谢。

2 个答案:

答案 0 :(得分:3)

基本上,它们都可能并且实际上应该在两者上都是活动的。因为在这种模式下,会话根本不会绑定到Web服务器。

您可以在网关上使用负载平衡技术将每个用户粘贴到单个服务器上,如果是这样 - 更好地使用InProc模式及其所有好处)

答案 1 :(得分:0)

由于会话数据存储在SQL Server中,因此您不必担心有多少会话处于活动状态。一旦服务器关闭(或IIS被回收,具体取决于配置),负载均衡器将自动将任何新请求发送到活动的IIS服务器。会话数据存储在SQL中,活动服务器可以检索会话数据,用户将不知道任何服务器切换已经发生。

理想情况下,您应定期测试此过程以确保正确配置所有内容。此外,在向服务器安装修补程序时,应遵循此过程。