0

奇怪的问题!ASP.NET 会话立即过期。在我的 web.config 我有这个会话设置:

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

AFAIK 超时属性的值以分钟为单位,不能大于 525,600 分钟(1 年)。我不明白我在这里做错了什么。为什么会话到期。是服务器内存问题吗?我不这么认为,服务器非常下降,而且它只有一个站点,毕竟它没有做太多事情。想法?
编辑:
将 cookie 属性设置为 true 后,在注意到 url 上的会话 ID 时,我可以看到会话 ID CHANGING。我认为这意味着会话即将到期。IIS 设置正确 AFAIK(启用会话状态复选框已选中,时间值为 20)。一张图片值 100 个字:

替代文字 http://img148.imageshack.us/img148/5053/sessionstate.jpg

4

5 回答 5

1

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

<sessionState mode="InProc" timeout="10000" cookieless="true" />
于 2009-08-12T12:44:05.200 回答
0

您需要确保在 IIS 以及 web.config 中启用了 Session。

此外,值得在 Application Restart 上添加一些日志记录。您可能有其他问题导致整个应用程序重置。

于 2009-08-12T12:45:26.170 回答
0

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

于 2009-08-12T12:46:16.747 回答
0

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

有人更新了 Web 应用程序中的文件导致它重新启动,这通常发生在有人决定更新 web.config 中的某些内容而没有意识到这会导致所有会话被丢弃时。

对我来说导致它的另一件事是 IIS 中的一个设置,它定义会话持续多长时间,如果您进入虚拟目录/网站的属性并单击配置,则在选项选项卡上是会话超时持续时间检查这是启用并设置为足够高的值。

于 2009-08-12T12:50:58.637 回答
0

结果是我们的一位团队成员犯了一个错误,他将会话设置为 inproc,尽管该站点分布有 4 台具有负载平衡功能的物理机器。我不确定这是否是问题所在,但是当我将其更改为将会话存储在 SQL 服务器中时,它起作用了!将深入挖掘这个问题并报告我可能获得的任何进一步信息。谢谢大家!

于 2009-09-06T11:33:34.680 回答