ASP.NET为什么会话超时,sessionstate超时设置

Ste*_*ieB 6 asp.net session

嘿,我的web.config中有以下行

<sessionState mode="InProc" timeout="45"/>
Run Code Online (Sandbox Code Playgroud)

我认为这将保持会话完整45分钟

但我已经看到了如果用户处于非活动状态的情况,可以说15分钟会话超时.

我怎么能阻止这个?

编辑:刚刚注意到我在母版页中有以下行

meta http-equiv ="刷新"内容="1800;网址= http://www.virtualacademy.ie/login.aspx">

也许这导致了问题,上面的线路是做什么,即1800号

Des*_*tar 19

请务必检查您的IIS配置,因为您的站点所在的应用程序池也有自己的超时值,该值将覆盖您自己的.config.

要增加它,

  1. 打开IIS
  2. 选择左侧的"应用程序池"
  3. 选择您的站点使用的应用程序池
  4. 选择高级设置
  5. 在Process Model categories下,将"Idle Time-out"值增加到所需的长度.

希望这可以帮助.

(如果您没有专门的服务器/访问IIS与您的托管服务提供商,您将不得不联系他们,看看他们是否可以为您增加它)


And*_*ber 5

如果用户关闭其浏览器或清除cookie,或者服务器上的AppDomain被回收,则会话状态将丢失.

您是否检查过日志以查看应用程序是否正在回收?


Jon*_*ams 5

如果sessionState是的话,AppDomain回收是一个非常常见的问题InProc.建议使用StateServerSQLServer替代生产系统.有关如何使用每种模式的文档以及三种不同类型的优缺点,请参阅会话状态模式.

就个人而言,如果必须用于Web服务器场,我们使用SQL Server - 速度较慢但可以共享.如果站点仅托管在单个Web服务器上,我们将使用状态服务器 - 状态可以在AppDomain重新启动时生存,但不会重新启动整个服务器.

此外,过去我们在后台使用了AJAX帖子,而用户正在观看长时间运行的视频或执行长时间的客户端任务,因此会话超时每隔几分钟就会重置一次.关于这段代码没有什么特别之处 - 每隔几分钟就会有一些JavaScript命中,一些ASPX页面什么都不返回.