Asp.NET 会话丢弃"In Process"设置。有人可以为我澄清一些事情吗?



我有一个web应用程序,它似乎正在随机删除ASP。NET会话。该应用程序与负载均衡器一起托管在四个服务器上。我已经查看了IIS7中站点虚拟目录的会话状态设置。每个服务器都将此设置为"处理中"。根据我所做的一些阅读,这似乎意味着会话数据只保存在一台服务器上,如果负载均衡器切换该用户的服务器,会话将被丢弃。这是正确的吗?

我读过的文章也指出,如果在多台服务器上托管时使用"In-Process",你应该使用一种名为"Sticky Sessions"的东西,但不要太详细。我如何检查是否使用了"Stickly Sessions"?这是IIS7设置,是负载均衡器独有的设置,还是完全不同的设置?

这只是我的理论,所以我也想知道,在得出结论或消除负载平衡器/IIIS设置是问题所在的可能性之前,是否还有其他指标需要研究。

我已经检查了事件查看器,我不认为这是由于AppPools或IIS本身的任何回收。

是的,你是对的,当另一台服务器在下一个请求中被击中时,没有数据。

粘性会话由平衡器处理。它可以通过客户的ip粘贴客户,或者发布粘贴cookie。取决于实际的平衡器,现在已经配置好了。在NLB中,这被称为"会话相关性"。

另一个常见的解决方法是将会话配置为sql server模式,但听起来你已经意识到了这种可能性,不想这样做。

最新更新