【问题标题】:ASP.NET SessionState timeoutASP.NET 会话状态超时
【发布时间】:2011-10-11 07:51:19
【问题描述】:

我在 IIS7 上使用 ASP.NET 网站,在 web.config 中我有:

<sessionState mode="InProc" timeout="20"></sessionState>

但是会话不会保持 20 分钟,它的工作方式很奇怪,有时它会在 1 分钟或更短的时间内过期,有时只是重定向到其他页面。我需要使用 mode="InProc"。

谁能帮助我,出了什么问题以及如何解决这个问题? 谢谢!

【问题讨论】:

  • 实际上,您甚至不需要 SessionState 标签(注释掉 SessionState 标签,看看会发生什么)。默认情况下,超时为 20 分钟。看起来我们代码中的某个地方正在清除会话。 msdn.microsoft.com/en-us/library/h6bb9cz9.aspx
  • 在网络解决方案中,我们为此问题度过了漫长的一天,最后我们在服务器配置级别专门解决了这个特定问题(会话过期和指定的超时被忽略)。我们的工作成果是一个共享服务器,可以始终记录托管创建的应用程序,这要归功于我们的服务器配置脚本(根据多年的专业知识制作),如果您愿意,还可以使用 SessionState DB 自定义数据库进行预配置,是 Windows-IIS 的理想选择-ASP.NET-MSSQL 共享主机!请通过 marco.marsala AT live.it 与我联系,看看我们的解决方案是否适用于您的情况

标签: asp.net session timeout session-state inproc


【解决方案1】:

如果您的应用程序抛出未处理的异常,则该应用程序可以回收。或者,它可能会因为内存压力而被回收,甚至只是因为 IIS 中的错误设置。这将导致您失去会话。您可以在 global.asax 中的 Application_End 事件处理程序中放置一些日志记录代码来检查这种情况。

【讨论】:

【解决方案2】:

应用程序池回收? (IIS 设置)。

无论如何,如果有帮助,您可以在 global.asax (session_end) 中检测和处理超时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2011-06-07
    相关资源
    最近更新 更多