嘿,我的web.config中有以下行
<sessionState mode="InProc" timeout="45"/>
我认为这会使会话保持完整45分钟
但我已经看到如果用户处于非活动状态的情况,可以说15分钟会话超时。
我该怎么办?
编辑:注意我在母版页中有以下行
meta http-equiv =“Refresh”content =“1800; URL = http://www.virtualacademy.ie/login.aspx”&gt;
也许这导致了这个问题,上面的行是做什么,即数字1800
答案 0 :(得分:18)
请务必检查您的IIS配置,因为您的站点所在的应用程序池也有自己的超时值,该值将覆盖您自己的.config。
要增加它,
希望这有帮助。
(如果您的托管服务提供商没有专用的服务器/ IIS访问权限,则必须与他们联系,看看他们是否可以为您增加)
答案 1 :(得分:5)
如果用户关闭浏览器或清除cookie,或者服务器上的AppDomain被回收,会话状态将会丢失。
您是否检查了日志以查看该应用是否正在回收?
答案 2 :(得分:5)
sessionState
为InProc
, AppDomain回收是一个非常常见的问题。建议使用StateServer
或SQLServer
代替生产系统。有关如何使用每种文档的文档以及三种不同类型的优缺点,请参阅Session-State Modes。
就个人而言,如果必须用于Web服务器场,我们使用SQL Server - 速度较慢但可以共享。我们使用状态服务器,如果该站点仅托管在单个Web服务器上 - 状态可以在AppDomain重新启动时生存,但不会重启整个服务器。
此外,过去我们在后台使用AJAX帖子,而用户正在观看长时间运行的视频或执行长时间的客户端任务,以便会话超时每隔几分钟重置一次。关于这段代码没有什么特别之处 - 每隔几分钟就会有一些JavaScript点击一些没有返回任何内容的ASPX页面。
答案 3 :(得分:0)
您使用的是表单身份验证吗?它有自己的超时设置,当到期时,即使会话仍然有效,也会将用户重定向到您的登录页面。