ASP.Net 中的会话超时设置

8
我已经在web.config文件中设置了会话超时时间为9小时,类似于以下内容:

``````

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

然而,经常有用户抱怨,在不到9小时的闲置时间内就面临超时,并且在超时后的时间间隔也不同。

我想知道会话超时是否取决于以下IIS设置之一:

  1. 会话时间设置
  2. 应用程序池的空闲超时设置
  3. 回收设置

请给予建议。还有,在IIS 7.0中如何检查会话超时设置?


你正在使用表单身份验证吗? - AMember
3个回答

11

当应用程序池回收时,会话将丢失。这是您提到的IIS设置之一。仅在web.config中设置超时时间不足够,您需要在IIS中调整设置。

这是我在查找同样问题时找到的链接

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


谢谢提供信息和链接。它们很有用。我会尝试看看是否可行。 - Anutosh Datta
Web.config 更像是服务器的图形用户界面,对吧?因此,当我们更改 Web.config 时,基本上是在更改 IIS 服务器的设置,对吧? - Unbreakable

0
如果您正在使用表单身份验证,应确保您的FormAuthentication Cookie在与您的会话同时过期。
如果没有,请确保您的IIS没有被回收。(在Global.asax中放置一个记录器以验证应用程序结束事件与用户投诉的时间。)

0

在您的Web配置中设置会话超时时间是不够的。如果托管您的站点的服务器在IIS设置中设置了较短的超时时间,那么您的会话将根据服务器会话超时值而超时。

此外,如果您从服务器目录中删除任何文件夹,这也可能导致您的AppPool意外地重新启动。

因此,请检查服务器会话超时值,如果它小于您的要求,请请求您的托管服务提供商将其增加。


Web.config 更像是服务器的图形用户界面,对吧?因此,当我们更改 Web.Config 时,基本上是在更改 IIS 服务器的设置,对吧?“您的站点托管的 IIS 设置中设置了较短的超时值”是什么意思? - Unbreakable

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