似乎有很多地方可以更改ASP.NET应用程序的会话超时时间,例如:
- 在包含该应用程序的应用程序池级别上。
- 在包含所有appPools的应用程序池节点级别上。
- 在网站属性对话框中,选择 ASP.NET 选项卡并编辑配置。
- 在网站属性对话框中,选择 ASP.NET 选项卡并编辑全局配置。
- 在应用程序的 web.config 文件中。
- 在计算机的 config 文件中。
我可能错过了一些地方,谁知道呢。这是我目前发现的。所以问题来了,会话超时的优先顺序是什么?哪个设置会覆盖其他设置?
谢谢!
似乎有很多地方可以更改ASP.NET应用程序的会话超时时间,例如:
我可能错过了一些地方,谁知道呢。这是我目前发现的。所以问题来了,会话超时的优先顺序是什么?哪个设置会覆盖其他设置?
谢谢!
3和5是指向同一设置的点,它们会覆盖所有其他设置。
我觉得3等于5,4等于6。
本地的web.config会覆盖全局的machine.config。
关于应用程序池,我不确定,1和2没有会话超时,至少在IIS 7.5中是这样。
继续其他答案:
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
)- 我认为这仅设置当前请求的超时时间,而不会影响应用程序超时时间。
就像Artemiy所说的,3 == 5和4 == 6。至于1和2,我认为他是指设置应用程序池的超时时间,这也将重置会话。
我的经验是本地应用程序配置将覆盖全局设置,但对于应用程序池设置和本地web.config设置,我认为不存在优先顺序问题。最短超时时间将被首先触发。这是我在iis6中的经验,7可能会有所不同。
另外请注意,如果应用程序目录中有任何更改,比如更改了web.config,它将重置应用程序并重置会话。病毒扫描器以此著名。