gpt4 book ai didi

ASP.NET session 意外结束

转载 作者:行者123 更新时间:2023-12-04 08:46:01 33 4
gpt4 key购买 nike

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

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

该问题始终发生在同一页面上,并且 session 模式为 InProc。

我已经完成了以下验证:

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

  • 以下限制适用:
  • 由于公司政策,不能将 session 模式更改为 InProc 以外的模式。
  • 报告生成“流程”是通过 4 个页面创建的。我不同意这一点,但由于时间和预算限制,无法重做。

  • 任何想法或解决方案都是有帮助的。对于任何必要的更新和测试,我会保持联系。

    最佳答案

    我要感谢大家的努力!

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

    关于ASP.NET session 意外结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6508424/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com