【问题标题】:ASP.NET session timeout: What is the order of precedence?ASP.NET 会话超时:优先顺序是什么?
【发布时间】:2010-11-09 19:33:52
【问题描述】:

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

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

我可能错过了一些,谁知道呢。这是我迄今为止发现的。那么问题来了,会话超时的优先顺序是什么?哪个设置会覆盖其他设置?

谢谢!

【问题讨论】:

  • 当然也可以直接在代码中使用 HttpContext.Session.Timeout 属性 ;)

标签: asp.net iis-6


【解决方案1】:

从其他答案开始:

ASP.NET 配置通过继承值来工作,从最通用的开始,一直到最具体的:

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

一个。 machine.config - 第 6 点
湾。 web.config - 可能是第 4 点,我没有玩太多这个
C。 web_[Level]trust.config - 如果您已为您的网站声明了信任级别

我相信应用程序池设置会在这里启动:

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

然后转到网站:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我认为 3==5 和 4==6

      本地 web.config 覆盖全局 machine.config

      我不确定应用程序池,在 1 和 2 中没有会话超时,在 IIS 7.5 中也没有。

      【讨论】:

        【解决方案4】:

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

        根据我的经验,本地应用程序配置将覆盖全局设置,但对于应用程序池设置和本地 web.config 设置,我认为没有优先顺序。这是一个问题,无论哪个具有最短的超时将首先被触发。这是我使用 iis6 的经验,7 可能会有所不同。

        还要记住,如果应用程序的目录有任何更改,例如更改 web.config,它将重置应用程序并重置会话。病毒扫描程序因这样做而臭名昭著。

        【讨论】:

          猜你喜欢
          • 2020-10-09
          • 2013-06-03
          • 1970-01-01
          • 2012-09-01
          • 2010-10-26
          • 1970-01-01
          • 1970-01-01
          • 2016-07-05
          • 2011-12-09
          相关资源
          最近更新 更多