ASP.Net中的会话超时设置

时间:2012-10-23 08:56:51

标签: asp.net iis-7 iis-6 session-state session-timeout

我在web.config文件中将会话时间设置为9小时,如下所示:

“<sessionState mode="InProc" timeout="540" />

但是,通常用户抱怨说他们在不到9小时不活动时面临超时,而且他们超时后的时间间隔也各不相同。

我想知道会话超时是否依赖于IIS中的以下任何设置:

  1. 会话时间设置
  2. 应用程序池的空闲超时设置
  3. 回收设置。
  4. 请指教。 另外,如何在IIS 7.0中检查会话超时设置?

3 个答案:

答案 0 :(得分:11)

ApplicationPool回收时,会话将丢失。这是您提到的IIS设置之一。仅在web.config中设置超时是不够的。您需要在IIS中调整设置。

这是我在查看相同问题时发现的link

此外,这个问题非常有用:Losing Session State

答案 1 :(得分:0)

如果您使用的是表单身份验证,则应确保将FormAuthentication Cookie设置为与会话同时过期。

如果没有确保您的IIS没有被回收。 (在您的Global.asax中放置一个记录器,以验证与用户投诉相比的应用程序结束事件。)

答案 2 :(得分:0)

仅在您的网络配置中设置会话超时是不够的。如果托管站点的服务器在IIS设置中设置的超时值较少,则会话将根据服务器会话超时值超时。

如果要删除服务器目录中的任何文件夹,也会导致AppPool意外回收。

所以请检查服务器会话超时值,如果少,请要求您的主机根据您的要求增加它。