ASP.NET会话如何混合使用StateServer?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我们在会话中存储两个对象。不知何故,来自另一个用户的一个对象被加载到另一个用户的会话中。用户应该无法访问这些特定的数据,只要他们看到它们,他们就知道有什么是非常错误的。

我们对提供给他的数据有可视化的证据,除非会议混淆,否则肯定没有办法发生。这是一个非常可怕的情况,我们无法弄清楚(我们无法重现)。对我们来说,唯一的答案是责备ASP.NET StateServer将会话变量混合起来,这是完全不可接受的,并使我们处于不利位置。

我们的应用程序是使用StateServer cookieless="false"会话模式和FormsAuthentication 在IIS6上运行的Windows Server 2003上的ASP.NET 2.0应用程序。

有其他人有这个问题吗?我们如何解决它?

提问于
用户回答回答于

我在之前的公司遇到了这个确切的问题,花了3周的时间进行调试。ASP.NET正在为用户提供其他人的会话状态。在调试环境中复制真的不可能。

当我们发现它的修复只是在web.config中的东西。我没有完全记得,所以我花了一些时间搜索。我相信这个问题与输出缓存有关。看看“会话和输出缓存”下的这篇文章。

http://download.microsoft.com/download/3/a/7/3a7fa450-1f33-41f7-9e6d-3aa95b5a6aea/MSDNMagazineJuly2006en-us.chm(该文章的标题为“ 通过避免这10种常见的ASP.NET平稳运行网站 Jeff Prosise在2006年7月版MSDN杂志中的缺陷

如果这听起来像场景,那么修复可能只是禁用web.config中的enableKernelOutputCache选项。

用户回答回答于

首先在你自己的代码中寻找错误 - 这是迄今为止最可能的解释。例如,使用静态字段或其他共享内存(如ASP.NET缓存)来提供用户特定的数据。

扫码关注云+社区