8

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

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

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

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

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

请指教。另外,如何检查 IIS 7.0 中的会话超时设置?

4

3 回答 3

11

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

这是我在研究相同问题时找到的链接。

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

于 2012-10-23T09:00:07.540 回答
0

如果您使用 Forms 身份验证,则应确保您的 FormAuthentication Cookie 设置为与您的会话同时到期。

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

于 2012-10-23T09:01:57.113 回答
0

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

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

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

于 2012-10-23T09:31:45.907 回答