代码之家  ›  专栏  ›  技术社区  ›  Ahmed

ASP.NET会话立即过期?

  •  0
  • Ahmed  · 技术社区  · 16 年前

    怪问题!ASP.NET会话立即过期。在my web.config中,我有以下会话设置:

    <sessionState mode="InProc" timeout="10000" />
    

    minutes 并且不能超过525600分钟(1年)。我不明白我在这里做错了什么。会话为何过期。这是服务器内存问题吗?我不这么认为,服务器是相当下降,它只有一个网站,这是没有做很多事情。思想?

    在将cookiless属性设置为true之后,当注意到url上的会话id时,我可以看到会话id . 我假设这意味着会话即将到期。IIS设置正确(已选中启用会话状态复选框,时间值为20)。一幅画抵得上100个字:

    alt text http://img148.imageshack.us/img148/5053/sessionstate.jpg

    5 回复  |  直到 15 年前
        1
  •  1
  •   RaYell    16 年前

    也许你的浏览器没有正确存储cookies。尝试将会话设置为 cookieless 模式,然后重试。

    <sessionState mode="InProc" timeout="10000" cookieless="true" />
    
        2
  •  0
  •   Robin Day    16 年前

    另外,值得在应用程序重启时进行一些日志记录。您可能有其他问题导致整个应用程序重置。

        3
  •  0
  •   Russell Steen    16 年前

    我曾经在一个页面上发生过这种情况。事实证明,我在执行序列中调用了一个我没有意识到的地方执行Session.about()(它与登录和我使用成员资格提供程序的方式有关)。作为一个调试技巧,我建议在每个Session.about()上设置一个断点,并确保在您不期望的情况下不会调用它。

        4
  •  0
  •   Gavin    16 年前

    这种情况在我身上发生过好几次,而罪魁祸首一直都是我。

    有人更新了web应用程序中的某个文件,导致该文件重新启动。当有人决定更新web.config中的某个文件而没有意识到这会导致所有会话被删除时,通常会发生这种情况。

    对我来说,另一个原因是IIS中的一个设置,它定义了会话的持续时间,如果您进入虚拟目录/网站的属性并单击“配置”,则在“选项”选项卡上的“会话超时持续时间”检查是否已启用,并将其设置为足够高的值。

        5
  •  0
  •   Ahmed    16 年前

    推荐文章