ASP.NET会话意外结束

Ale*_*des 8 asp.net session visual-studio-2005 web-config session-variables

我对ASP.NET 2.0上的会话有一个非常奇怪的问题.我正在使用的系统使用会话变量来存储对象的参数(如问题和答案),以生成报告.这些是具有相同名称的类的实例,因此它们使用如下参数填充:

此报告是通过4个aspx页面生成的.首先定义位置和日期参数,第二页存储问题,第三个存储答案.最后一个显示Excel和HTML格式的生成报告的链接.所有可变数据都存储在会话中,一切顺利,直到最后一页,当发生Session.Abandon()之类的事情时,会触发Session_End事件并且所有变量都会丢失.这种情况每天只有一次,每个登录的用户在第一次使用的报告,然后你可以尝试了整整一天了数十次,将不会再看到它.

问题始终发生在同一页面上,会话模式为InProc.

我已经完成了以下验证:

  1. 检查是否有任何Session.Abandon()或Session.Clear()命令.没有了.
  2. 检查会话超时,它设置为18分钟,并且问题随时发生,如上所述,无论您在18分钟内使用它多长时间.
  3. 在身份验证下检查表单超时.它也设置为18分钟.
  4. 我已经了解到Server.Transfer()有一个错误,它有时会刷新会话和视图状态,并已被Response.Redirec()取代
  5. 逐行监控会话,一切顺利,当页面完全加载时,它就会死掉.所有变量都消失了,但会话仍然有效.
  6. 就我而言,IIS已正确配置.我无法访问它,但所有其他系统都可以正常工作.
  7. 还分析了一些上述系统,寻找可能发生的事情的一些线索,但是他们的web.config文件与我遇到的问题非常相似,并且没有实现与会话交互的特殊代码.
  8. 还考虑过监视IIS以便重新启动应用程序,但我很确定它没有超过默认限制15.但是,我无权访问IIS服务器,并且在我的计算机上完成的所有测试都使用ASP.NET开发服务器.这两个问题都发生在.
  9. 检查了进程回收的可能性,例如.config和asax文件更改,bin目录上的/更改,没有发生.

以下限制适用:

  1. 由于公司政策,无法将会话模式更改为InProc以外的其他模式.
  2. 报告生成"过程"通过4页创建.我不同意这一点,但由于时间和预算限制,无法重做.

任何想法或解决方案都有帮助.我将保持联系以进行任何必要的更新和测试.

Ale*_*des 2

我要感谢大家的努力!

我和我的团队发现了这个案件中发生的事情。有一种方法可以删除网站文件夹中的临时文件和目录,从而导致回收和会话刷新。该代码计算日期和时间,并且应该每 24 小时删除一次目录,因此当用户首次登录系统并生成报告时,它会删除该目录并刷新会话。