ASP.NET会话超时:优先顺序是什么?

3

似乎有很多地方可以更改ASP.NET应用程序的会话超时时间,例如:

  1. 在包含该应用程序的应用程序池级别上。
  2. 在包含所有appPools的应用程序池节点级别上。
  3. 在网站属性对话框中,选择 ASP.NET 选项卡并编辑配置。
  4. 在网站属性对话框中,选择 ASP.NET 选项卡并编辑全局配置。
  5. 在应用程序的 web.config 文件中。
  6. 在计算机的 config 文件中。

我可能错过了一些地方,谁知道呢。这是我目前发现的。所以问题来了,会话超时的优先顺序是什么?哪个设置会覆盖其他设置?

谢谢!


当然,也可以直接在代码中使用HttpContext.Session.Timeout属性 ;) - Zhaph - Ben Duguid
4个回答

1

3和5是指向同一设置的点,它们会覆盖所有其他设置。


1

我觉得3等于5,4等于6。

本地的web.config会覆盖全局的machine.config。

关于应用程序池,我不确定,1和2没有会话超时,至少在IIS 7.5中是这样。


1

继续其他答案:

ASP.NET 配置通过继承值工作,从最一般的开始,逐步向最具体的方向发展:

开始在 Microsoft.Net\Framework\vX.Y.ZZZ\Config 文件夹中

a. machine.config - 第6点
b. web.config - 可能是第4点,我没有过多尝试
c. web_[Level]trust.config - 如果您为站点声明了信任级别

我认为应用程序池设置会在此处生效:

d. 应用程序池节点 - 第2点
e. 应用程序的应用程序池 - 第1点

然后转移到网站:

f. web.config - 第3和第5点
g. 应用程序代码(在代码中直接设置 HttpContext.Session.Timeout )- 我认为这仅设置当前请求的超时时间,而不会影响应用程序超时时间。


1

就像Artemiy所说的,3 == 5和4 == 6。至于1和2,我认为他是指设置应用程序池的超时时间,这也将重置会话。

我的经验是本地应用程序配置将覆盖全局设置,但对于应用程序池设置和本地web.config设置,我认为不存在优先顺序问题。最短超时时间将被首先触发。这是我在iis6中的经验,7可能会有所不同。

另外请注意,如果应用程序目录中有任何更改,比如更改了web.config,它将重置应用程序并重置会话。病毒扫描器以此著名。


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