会话状态超时不起作用。

3
我已将会话状态超时设置为60,即1小时。但是,用户在20分钟后仍然收到会话过期消息。
我们正在使用Windows Server 2008来托管asp.net应用程序。请问有谁可以告诉我为什么会话在20分钟后过期?
我正在使用Windows身份验证。以下是我的web config:
<sessionState  timeout="60" />

你是如何尝试设置SessionState超时时间的?请发布相关代码或更详细地解释一下。 - Shadow The Spring Wizard
2
你在哪里配置了会话超时时间?是在web.config还是IIS中? - Raghav
抱歉,我已经更新了我的原始问题,并附上了web.config的值。 - Nil Pun
重复问题:http://stackoverflow.com/questions/1606167/asp-net-session-time-out - VMAtm
2个回答

4

检查IIS会话数量。它可能与.NET会话数量不同。

配置会话超时时间(IIS 7)
另请参见此问题

默认情况下,当用户在ASP应用程序中未请求或刷新页面达20分钟时,会话将过期


您提供的链接只适用于经典ASP还是ASP.NET也适用? - Nil Pun
对于IIS上的会话来说没有关系 - ASP和ASP.NET页面可以在一个应用程序中运行。IIS处理除了.NET之外的会话。 - VMAtm
2
还要检查表单身份验证的超时时间(如果您正在使用它),以及应用程序池的空闲时间。 - Ivo
嗯..你知道应用程序池设置中的Idle-Time Out是什么吗?这也可能导致问题吗? - Nil Pun
你尝试过更改IIS会话空闲时间吗? - VMAtm
显示剩余2条评论

0

首先检查Windows事件日志,确保工作进程没有被强制回收。 也许是你的代码中有些东西导致工作进程强制回收,在这种情况下,当会话被存储为inProc时,它将丢失所有保存的会话值。 在此输入图片描述

您需要在IIS=>Pool Application=>Advance Setting中进行这些更改...

enter image description here enter image description here enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接