【问题标题】:ASP.NET session terminates before session timeoutASP.NET 会话在会话超时之前终止
【发布时间】:2014-07-23 23:04:11
【问题描述】:

我们有一个 ASP.NET 4.0 Web 应用程序在负载平衡环境中的 IIS 7.0 上运行。网页初始加载后,我们会在每 5 分钟后使用 AJAX 更新面板和网络服务刷新网页的某些部分。

该网站预计在没有任何用户干预的情况下连续运行超过 12 小时,最长可达 2 天。会话超时已设置为最大值 525600。应用程序池也已配置为不回收。 executionTimeout 也配置了更高的值。

但是,应用程序间歇性地失败。刷新网页时,它会重定向到 WSSO 登录页面,指示会话已终止。我们在 Web 服务器日志中找不到任何错误跟踪。会话模式为 inproc。

如果我遗漏了什么,请告诉我。任何指导都会非常有帮助。

谢谢, 阿文德

【问题讨论】:

  • 你在使用inproc会话模式吗?
  • 能否请您在最后提供会话模式,这将有助于我们在沙盒中进一步排除故障。
  • 是的,Session模式是inproc。

标签: asp.net ajax session


【解决方案1】:

在负载平衡的环境中,不能将 InProc 用于 Session-State。

相反,您需要使用 StateServer 或 SQLServer。

Session-State Modes

其他想法

  • 如果您使用 FormAuthentication,其超时时间必须至少是会话超时时间的两倍
  • 机器密钥对于所有实例必须相同。

仅供参考:请先在单个 Web 服务器中进行测试。如果有效,则打开负载平衡。

【讨论】:

  • 我已将会话模式修改为使用 SQLServer 进行会话存储。然而,在测试网站一段时间后,我最终得到了相同的会话超时错误。
  • 谢谢,我错过了在配置文件中添加机器密钥。现在工作正常。再次感谢您的及时答复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 2013-05-30
  • 1970-01-01
  • 2010-12-05
  • 2011-07-16
相关资源
最近更新 更多