群集中可以有多个ASP.NET状态服务器服务吗?
时间:2020-03-05 18:56:27 来源:igfitidea点击:
我们有一个使用ASP.NET状态服务器服务进行会话的,运行ASP.NET Web应用程序的4服务器群集。在4台服务器之一上,ASP.NET状态服务器服务正在运行,而其他服务器也配置为对此进行查看。通常,我们必须修补服务器,并且在状态服务器上应用修补程序需要几分钟的停机时间。
有没有一种方法可以在一个群集中配置两个以上的ASP.NET状态服务器服务,因此,如果其中一个发生故障,则另一个可以接管?
解决方案
回答
我将研究会话状态分区。好信息在这里:
http://blog.maartenballiauw.be/post/2008/01/ASPNET-Session-State-Partitioning-using-State-Server-Load-Balancing.aspx
回答
如果第一个ASP.NET状态服务器服务失败,则第二个ASP.NET状态服务器服务无法接管,而不会丢失存储在第一台服务器上的部分会话信息。新会话将由第二台服务器正常处理。要获得此行为,我们需要设置会话状态分区(请参阅Jon Galloway的答案)。
此行为是设计使然; ASP.NET状态服务不会在服务器之间复制会话数据。
如果我们需要将进程外会话数据复制到多台服务器,则必须使用其中一种商业产品(例如,ScaleOut)或者等待Microsoft Project Velocity投入生产。就我个人而言,我急切地等待着Velocity的发布,一旦我对产品感到有信心,就会从ASP.NET状态服务器切换到它。
对于ASP.NET的会话状态,此链接提供了有关Velocity的更多信息。
回答
ASP Stateserver不会从第一个节点复制会话。
但是至少可以保持Web正常运行并在下一次重试中运行。
关于在MSCS集群环境中实现ASP状态服务的思考