2012-10-23 175 views
8

设置我已经设置会话超时在web.config文件中的东西9小时这样的:会话超时在ASP.Net

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

但往往用户抱怨他们所面临的时间了,在不到9不活动时间以及超时后的时间间隔也有所不同。

我在想,如果会话超时是依赖于任何的IIS中的以下设置:

  1. 会议时间设定
  2. 的停机时间进行设置应用程序池
  3. 回收设置。

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

+0

你使用表单身份验证吗? – AMember

回答

11

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

这是一个link我在找到同样的问题时发现。

而且,这个问题是非常有用的:Losing Session State

+0

感谢您的信息和链接。他们很有用。我会试着看看它是否可行。 –

+0

Web.config更像是服务器权限的GUI(可以这么说)?所以,当我们对Web.Cofig进行更改时,我们正在基本上对IIS服务器的设置进行更改吗? – Unbreakable

0

如果您使用窗体身份验证,你应该确保你的FormAuthentication的Cookie设置,同时为您的会话过期。

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

0

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

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

所以请检查服务器会话超时值,如果它少,然后要求您的托管增加它按您的要求。

+0

Web.config更像是服务器的GUI吗?所以,当我们对Web.Cofig进行更改时,我们正在基本上对IIS服务器的设置进行更改吗? “您的网站托管的意思是指在IIS设置中设置的值越少越好” – Unbreakable