与经典ASP一起旋转的IIS7会话ID

我正在尝试将一个经典ASP应用程序迁移到Windows 2008 R2服务器上。

应用程序function运行良好,但我有会议的问题。

应用程序保持会话中login的用户信息,我经常被淘汰,就好像会话已经过期。

在debugging过程中,我发现会话没有过期,但我得到了一个浏览器使用的2-3个不同的会话ID。

我在应用程序中的各个页面上输出Response.Write(Session.SessionID),我可以坐在那里反复刷新并观察这些2-3个SessionID之间随机变化的编号。

会话仍然有效,因为当我刷新并获得我login在页面下的会话ID(因为安全检查成功),当我得到其他会话ID之一时,我得到“你没有login在,你需要login“消息。

如果我closures并重新打开浏览器,同样的故事只是一组ID是新的。

这种情况发生在多台电脑的IE8,Firefox和Chrome上。

我试过的东西:
– AppPool设置为无托pipe代码和经典
– 输出caching设置.asp永不caching
– ASP会话属性启用和禁用asp会话状态,并确认它受到影响的页面(错误试图读取Session.SessionID禁用时)

事情我已经试过,以防万一,但不应该有任何与ASP会话:
– 禁用压缩
– 更改了ASP.Net会话状态属性(InProc,StateServer,SQLServer,Cookies,URI等) –

检查应用程序池的networking花园设置。 如果它大于1,则该网站将运行超过1个工作进程。 经典ASP中的会话状态取决于进程内存的单个实例。 networking花园非常罕见,需要设置为1以外的任何值。

具有循环负载平衡的webfarm将具有相同的问题,但是您的文章并不build议您拥有这一点。