【发布时间】:2012-04-08 07:23:17
【问题描述】:
我有 2 个负载平衡的 Web 服务器。我的应用程序正在使用 SQL Server 2008 上的 SQL Server 会话状态数据库。
这两个 Web 服务器在 IIS 配置方面是相同的,如果我理解正确的话,两个服务器上的两个 Web 应用程序将映射到 ASPStateTempApplications 表中的相同应用程序 ID,因为它们具有相同的 IIS 配置。因此,计算与此应用 ID 关联的会话数(来自 ASPStateTempSessions 表)将得出两个 Web 服务器上的会话总数。
我的问题是: 有没有办法单独知道每台服务器上有多少会话处于活动状态?
我有一个问题,当我从负载平衡中取出一台服务器时,我想在回收之前知道服务器上是否还有任何活动会话。
另一种情况,如果我必须在其中一个服务器上回收 IIS,因为同一服务器上的另一个 Web 应用程序崩溃了,我想知道这样做会影响多少会话。
谢谢。
【问题讨论】:
-
使用 SQL 会话状态的全部意义在于回收(或重新启动)应用服务器对客户端的影响为零。唯一会抵消这种好处的是,如果您的负载均衡器设置为使用粘性会话,即使这样,如果一台服务器出现故障,它应该故障转移到另一台服务器,并且该状态仍然可以在数据库中访问。跨度>
-
同意,与其努力确定每台 iis 服务器上的会话数,不如努力做到这一点,这样您就不必在意了。我认为你应该在那里,但如果不是,那就去那里。我对您的问题的回答是“让这个问题变得无关紧要”。
标签: asp.net sql-server iis-7 session-state