![]() |
1
4
取决于你想要什么样的国家服务。 一般来说,在负载平衡的情况下,您会选择SQL Server会话或ASP.NET状态服务。 每个都有其pro/con(SQL Server会话需要序列化/反序列化,但如果服务器发生故障,则保持状态;如果服务器发生故障,则ASP.NET状态不保持状态,但由于没有序列化/反序列化,因此速度要快得多)。
请记住,如果要在web服务器(即webfarm)之间共享会话,则需要更新每个服务器的machineKey设置,使其相同。 Here's 一篇关于ASP.NET会话状态的好文章(以及我提到的machineKey问题)。 |
![]() |
2
2
此外,还需要确保会话中存储的所有对象都标记为[Serializable] |
![]() |
3
1
另一个需要考虑的方法是“粘性”会话。 在这里,您可以配置负载平衡器,使其始终将给定的“会话”指向同一个框。大多数(如果不是全部的话)商用负载平衡器都支持这一点。基本上,它们插入自己的会话cookie或http头,用于标识给定的用户会话。此会话将始终路由到同一个框(除非它关闭)。 这种方法的优点是您可以继续使用普通会话状态,从而简化服务器配置和设置。 新的 会话到另一台服务器,但必须继续将现有会话发送到同一台服务器。) |
![]() |
4
0
如果您想获得可用性(即会话在任何服务器上都可用,而不考虑服务器故障),那么SQL路由是一种可行的方法,但您也可以查看ScaleOut SessionServer( http://www.scaleoutsoftware.com/pages/products/scaleout-sessionserver.php )
|