Session 移动到新服务器后,web应用程序重复丢失会话变量

Session 移动到新服务器后,web应用程序重复丢失会话变量,session,iis-7,windows-server-2008,session-state,application-pool,Session,Iis 7,Windows Server 2008,Session State,Application Pool,我有一个以前在Windows2003服务器上运行的旧web应用程序。当我将其移动到新的Windows 2008服务器时,我开始收到一个以前从未遇到过的错误。该应用程序使用windows登录。在访问应用程序时,会要求用户登录。之后,它们就可以自由地用于应用程序了。然而,问题是,在使用它一段时间后,用户将被引导出来并要求再次登录。该系统也比以前慢得多。它在IIS7上运行。在我看来,出现了会话变量丢失的情况,但我不确定为什么会出现这种情况 有趣的是,当用户再次登录时,他们通常可以在启动并要求再次登录之

我有一个以前在Windows2003服务器上运行的旧web应用程序。当我将其移动到新的Windows 2008服务器时,我开始收到一个以前从未遇到过的错误。该应用程序使用windows登录。在访问应用程序时,会要求用户登录。之后,它们就可以自由地用于应用程序了。然而,问题是,在使用它一段时间后,用户将被引导出来并要求再次登录。该系统也比以前慢得多。它在IIS7上运行。在我看来,出现了会话变量丢失的情况,但我不确定为什么会出现这种情况

有趣的是,当用户再次登录时,他们通常可以在启动并要求再次登录之前使用应用程序更长的时间。还值得一提的是,似乎服务器上的用户越多,问题就越不突出

还值得一提的是,我尝试将应用程序移动到另一台2008服务器上,并且在这台服务器上运行得非常好。这使我相信问题在于服务器上的设置。我并排查看了两台2008服务器的设置,注意到了它们之间的差异,但无法找到会导致此类错误的差异。值得注意的一个区别是,不能正常工作的服务器是32位的,而不能正常工作的服务器是64位的。尽管如此,我不认为这种差异会导致应用程序丢失会话变量,但在其他情况下仍然可以工作

其他信息:

  • 每个服务器上的应用程序中的代码都是相同的,因此我认为错误发生在服务器级别,而不是应用程序本身
  • 考虑到代码是相同的,我不认为这是从任何地方调用Session.about()的结果
  • 我不认为这是由于会话超时
  • 我曾读到,由于应用程序池回收,其他人会经历会话变量丢失,并且应用程序池回收通常来自正在访问的配置文件(无论是来自用户还是来自防病毒软件)。我没有理由相信这里是这样的,因为所有服务器都在同一个反病毒环境下,并且应用程序在这些服务器上运行良好
  • 在工作的服务器上,IIS身份验证设置设置为禁用windows身份验证并启用匿名身份验证。然而,在另一台服务器上,情况正好相反
在此问题上的任何帮助都将不胜感激


谢谢。

确保您的应用程序池在4.0.Net Framework下运行,并检查您的应用程序池标识。使用7.0 iis时,请确保使用集成模式。

即使不是由防病毒触发,也可能是应用程序池回收。我相信应用程序池回收事件会显示在Windows事件日志中的某个位置,因此值得检查。这成功了!非常感谢你!我被困在这上面好几天了