ASP.NET会话意外结束

前端之家收集整理的这篇文章主要介绍了ASP.NET会话意外结束前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对ASP.NET 2.0上的会话有一个非常奇怪的问题.我正在使用的系统使用会话变量来存储对象的参数(如问题和答案),以生成报告.这些是具有相同名称的类的实例,因此它们使用如下参数填充:

该报告是通过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页创建.我不同意这一点,但由于时间和预算限制,无法重做.

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

解决方法

我要感谢大家的努力!

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

原文链接:https://www.f2er.com/aspnet/248175.html

猜你在找的asp.Net相关文章