IIS 6.0会话超时与Web.Config超时对应用程序池空闲超时

时间:2018-01-24 05:49:00

标签: c# asp.net session iis

我想增加IIS 6.0中托管的ASP.NET Web App的会话时间。因此,我在网站的web.config中将SessionState时间更改为600分钟。但它没有用,我的会话就像一小时一样。(Session["myVariable"] == null

<system.web> 
<sessionState timeout="600" />
  </system.web>

现在,我尝试通过访问网站来设置IIS网站中的Timeout值,其中包含此应用程序。属性 - &gt;主页目录标签 - &gt;配置按钮 - &gt;选项选项卡并将其变为600分钟,仍然没有运气。 问题here表示这适用于经典的ASP页面,但不适用于ASP.NET网站。这意味着我做错了。

然后我检查了运行此应用程序的应用程序池(app Pool-&gt; Properties - &gt; Performance选项卡)。这表示&#34;回收工人流程(以分钟为单位)&#34; 10分钟。 我在SO上阅读了很多问题,但没有一个能给出关于如何在ASP.NET WebApp上增加会话超时的明确答案。

我想知道这三个设置之间的区别以及何时使用它们以及如何增加webApp的会话超时。

1 个答案:

答案 0 :(得分:0)

您在web.config中设置的超时是会话超时。 它控制Web应用程序的每个“会话”在到期前需要等待的时间。 假设有一个用户登录到您的应用程序,并且在20分钟内未执行任何操作,然后单击一个按钮,那么该用户将被注销,需要再次登录(假设会话超时为20分钟)。其他继续工作的用户不会受到影响。

应用程序池回收是另一回事。此设置可按照指​​示终止并重新启动IIS中的工作进程。因此,如果将其设置为10分钟,就好像您每10分钟重新启动IIS。因此,除非您将会话状态保存在其他位置,否则使用该应用程序池的应用程序中的所有会话都将过期。

应用程序池中还有另一个设置,即空闲超时。它还设置为分钟,如果在该时间段内没有请求,它也会终止工作进程。如果只有您的应用程序在IIS中运行,则还应该增加此值以及web.config中的会话超时值。否则,即使ASP.NET喜欢长时间保持会话,应用程序池也不会。

可以在应用程序池中找到此设置->高级设置->流程模型