Joe*_*oel 7 asp.net cookies session internet-explorer
我有一个ASP.NET 2.0站点,在会话中存储用户的ID以表明他们已登录.在某些情况下,用户似乎没有保持登录状态.我一直在监视Fiddler中的流量,以及一些细节我发现:
有什么想法会导致这种情况吗?
编辑:生产环境包含www.DomainX.com和DomainX.com的域.还存在另一个已知问题,即没有为这两个域设置cookie.这可能是相关的,但是在修复产生之前我将无法进行测试.
您需要查看会话状态提供程序,看看它是否可以跨 .net 应用程序的两个服务器/实例工作。例如,如果将它们设置为 inProc,那么您肯定会遇到此问题,因为每个会话都将绑定到创建它的线程。相反,您希望将其抽象为两台计算机都可以访问的 asp.net 状态服务,或者更好的是,您应该使用分布式缓存解决方案,例如 Microsoft Velocity 项目,该解决方案将在两台计算机之间分配会话,以防其中一台计算机出现故障。
处理此问题的其他一些方法是在负载均衡器上使用粘性会话(不推荐)或转移到无 cookie 会话,这可以工作,但可能会导致代码中出现一些问题。
在我们的业务中,我们有一个主服务器和一个辅助服务器,其后面有一个分布式缓存,这样如果一台机器出现故障,另一台机器可以接管。同样的原则也适用于负载平衡,一旦您开始在应用程序池中拥有多于一台机器甚至多于一个实例,您将必须为此编写代码。
如果您使用 Velocity 进行会话,请确保您选择用于存储会话的缓存是不可逐出的。