该报告是通过4个aspx页面生成的.首先定义位置和日期参数,第二页存储问题,第三个存储答案.最后一个显示Excel和HTML格式的生成报告的链接.
所有可变数据都存储在会话中,一切顺利,直到最后一页,当发生Session.Abandon()之类的事情时,会触发Session_End事件并且所有变量都会丢失.这种情况每天只发生一次,对于每个登录用户首次使用报告,然后您可以尝试整整一天几十次,不会再看到它.
问题始终发生在同一页面上,会话模式为InProc.
我已经完成了以下验证:
>检查是否有任何Session.Abandon()或Session.Clear()命令.没有了.
>检查会话超时,设置为18分钟,如上所述,问题随时发生,无论您在18分钟内使用它的时间长短.
>在身份验证下检查表单超时.它也设置为18分钟.
>我已经了解到Server.Transfer()有一个错误,它可能有时刷新会话和视图状态,并已替换为Response.Redirec()
>逐行监控会话,当页面完全加载时,它就会死掉.所有变量都消失了,但会话仍然有效.
>就我而言,IIS已正确配置.我无法访问它,但所有其他系统都可以正常工作.
>还分析了一些上述系统,寻找可能发生的事情的一些线索,但他们的web.config文件与我遇到的问题非常相似,并且没有实现与会话交互的特殊代码.
>还考虑监视IIS以便重新启动应用程序,但我很确定它没有超过默认限制15.但是,我无权访问IIS服务器,并且在我的计算机上完成的所有测试都使用ASP.NET开发服务器.这两个问题都发生在.
>检查了进程回收的可能性,例如.config和asax文件更改,bin目录上的/更改,没有发生.
以下限制适用:
>由于公司政策,无法将会话模式更改为InProc以外的其他模式.
>报告生成“过程”通过4页创建.我不同意这一点,但由于时间和预算限制,无法重做.
任何想法或解决方案都有帮助.我将保持联系以进行任何必要的更新和测试.