从.aspx导航到.asp页面时,经典的Asp会话状态丢失了

时间:2014-07-29 09:25:41

标签: asp.net asp-classic load-balancing

我们有一个遗留应用程序,它是Classic AspASP.NET的混合体。这个遗留应用程序位于我们的主ASP.NET网站的子文件夹中。要清楚这个子文件夹中有.asp和.aspx页面的混合。

我们不共享会话,但是当从.asp导航到.aspx页面时,我们会在正文中发布足够的信息来设置ASP.NET中的会话。

如果用户导航回.asp页面,那么用户会话仍然存在,并且一切都在一台Web服务器上正常工作。

我们正在两个Web服务器上测试load balancing,设置如下。

ASP.NET不使用亲和关系,因此由负载均衡器决定使用哪个Web服务器。旧版应用程序位于子文件夹中,此子文件夹具有单个关联。两个Web服务器在web.config中都具有相同的机器密钥设置。 ASP.NET应用程序的会话状态存储在数据库中。

问题是当从.aspx导航回.asp时,Classic Asp会话丢失了。我想明白为什么?

请注意。单一关联 - 粘性会话适用于旧文件夹,我已使用IIS日志对其进行了检查。因此,对旧文件夹的所有请求将始终路由到同一个Web服务器。

1 个答案:

答案 0 :(得分:0)

在负载均衡的情况下,经典ASP不支持跨服务器的会话。使用ASP.NET术语(松散地),ASP Clasic会话支持的唯一modeInProcOff

如果您希望会话在负载平衡方案中工作,您必须将负载均衡器配置为使用"粘性会话/关联性",或者滚动您自己的由数据库或其他东西支持的自定义会话管理(在没有创建安全漏洞的情况下做到这一点很棘手)。

阅读材料:http://msdn.microsoft.com/en-us/library/ms972338.aspx