我在 web.config 文件中将会话超时设置为 9 小时,如下所示:
“<sessionState mode="InProc" timeout="540" />
但用户经常抱怨他们在不到 9 小时的不活动中面临超时,并且超时后的时间间隔也各不相同。
我想知道会话超时是否取决于 IIS 中的以下任何设置:
- 会话时间设置
- 应用程序池的空闲超时设置
- 回收设置。
请指教。另外,如何检查 IIS 7.0 中的会话超时设置?
我在 web.config 文件中将会话超时设置为 9 小时,如下所示:
“<sessionState mode="InProc" timeout="540" />
但用户经常抱怨他们在不到 9 小时的不活动中面临超时,并且超时后的时间间隔也各不相同。
我想知道会话超时是否取决于 IIS 中的以下任何设置:
请指教。另外,如何检查 IIS 7.0 中的会话超时设置?
ApplicationPool 回收时会话将丢失。这是您提到的 IIS 设置之一。仅在 web.config 中设置超时是不够的。您需要调整 IIS 中的设置。
这是我在研究相同问题时找到的链接。
此外,这个问题非常有用: Losing Session State
如果您使用 Forms 身份验证,则应确保您的 FormAuthentication Cookie 设置为与您的会话同时到期。
如果不确保您的 IIS 没有被回收。(在您的 Global.asax 中放置一个记录器,与您的用户投诉相比,验证应用程序结束事件。)
在 Web 配置中设置会话超时是不够的。如果托管站点的服务器在 IIS 设置中设置的超时值较少,则根据服务器会话超时值,您的会话超时。
此外,如果您从服务器目录中删除任何文件夹,这也可能导致您的 AppPool 意外回收。
所以请检查服务器会话超时值,如果它小于然后要求您的主机根据您的要求增加它。