【发布时间】:2026-02-10 06:35:01
【问题描述】:
我们有一个 ASP.Net MVC Web 应用程序,它在 30 分钟后一直超时。
在 web.config 中,我将 sessionState 超时值设置为 500 分钟。 30 分钟后,会话仍然超时。因此,我将其设置为 1 分钟,这确实有效。会话恰好在 1 分钟后超时。
然后,我在 Global.asax.cs 中的 Session_Start 中添加了以下代码:
Session.Timeout = 500;
这有效地覆盖了 web.config 中的 1 分钟超时设置。但是,就像发条一样,会话仍然恰好在 30 分钟时超时。
如何使 IIS 遵守会话超时值?
【问题讨论】:
-
你确定这是你真正想要的吗?会话应该用于缓存信息以提高跨请求的性能,但不能用于长期存储数据。使用持久 cookie 确保用户不必重复登录,并保存其他所有内容,以便在会话丢失时可以恢复。还可以保护您免受应用程序池回收、iis 重启等的影响。
-
是的。这就是我们最终要使用该应用程序的地方。目前,在这个 beta 版本中,我们需要这部分才能正常工作。
标签: asp.net-mvc iis global-asax session-timeout sessionstate-timeout