会话超时意外值 9999

Session Timeout Unexpected Value 9999

我知道会话超时的范围是 1-9999,默认为(10 或 600?)。

我的web.config套SessionState timeout="5"

我有一些 Razor 注入 JavaScript 和 @Session.Timeout

Razor 的计算结果符合预期 5,我可以解决所有问题。

生产中除外。如果我查看我的生产网站的 HTML,剃刀 @Session.Timeout 所在的位置显示 9999!!?

Build-Server 上的 Web.Config 显示 SessionState timeout="5",并且 Web.Config 被直接复制到产品位置在自动构建中(我无权访问。)

最后:代码中恰好有 个调用来改变 HttpSessionState.Anything

可能是什么原因?

某些东西会覆盖您的应用程序web.config

你能检查一下 web.config

之前和之后的 the config files

第一个是 Machine.config systemroot\Microsoft .NET\Framework\versionNumber\CONFIG\Machine.config

第二个是 ApplicationHost.config %windir%\system32\inetsrv\config

第三根Web.configsystemroot\Microsoft .NET\Framework\versionNumber\CONFIG\Web.config

你还应该检查 Tip 2: Understand how your site Web.config inherits its settings 简化了它

一些东西 check/try:

  1. 检查 ApplicationHost.config 文件以查看是否在那里定义了会话超时。

  2. 如果您使用的是表单身份验证,请检查此部分并查看是否有不合适的值:

    <authentication mode="Forms">
        <forms timeout="9999" ... />
    </authentication>
    
  3. global.asax 中的 Session_Start 有什么巧妙的事情吗?有些人喜欢在会话刚开始时在这里玩游戏。