【问题标题】:ASP.NET - Session variables null after a minuteASP.NET - 一分钟后会话变量为空
【发布时间】:2013-03-18 17:18:47
【问题描述】:

我有一个在 IIS 服务器 8 上运行的 asp.net 网站。

我的 Session 变量在一分钟的空闲时间(一致)后设置为 null,之后我得到未处理的异常。但是,如果我继续导航并做某事,一切都会正常。

在我的 web.config 文件中,会话状态模式为 SQLServer,超时为 20(分钟)。我认为即使默认情况下超时也是 20 分钟,所以在一分钟内发生这种情况真的让我感到困惑。

我不明白还有什么其他因素会使会话变量失去其值? 任何指针?谢谢

【问题讨论】:

  • 您是否检查过 IIS 中的实际应用程序或应用程序所在的应用程序池?应用程序重新启动将丢失会话 - 这可能是由更改 web.config 或应用程序池回收引起的。
  • 从未使用过 SQL Server 会话状态,但我想说第一步是尝试以某种方式确认是否按预期工作
  • 我确实检查了事件日志,并且我确信发生这种情况时不会重新启动应用程序。为什么不使用 SQL Server 会话状态?
  • 你只有1个网络服务器吗?
  • 如果您有超过 1 个网络服务器(例如负载平衡):请查看此帖子:stackoverflow.com/questions/10555000/…

标签: asp.net iis session-variables


【解决方案1】:

我建议运行数据包嗅探器(例如 WireShark)或使用 Fiddler 工具来确保在发生这种情况时获得相同、一致的会话 ID cookie。如果由于某种原因您获得不同的会话,这可以解释问题。否则,请使用调试器检查您的代码,以确保您没有错误地清除会话值或将会话值设置为 null。

【讨论】:

  • 我不认为这发生在代码中,因为在我的本地系统上(通过 .net 开发服务器)它一切都完美无缺。我会尝试提琴手。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-21
相关资源
最近更新 更多