Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET会话状态值交换_Asp.net_Session - Fatal编程技术网

ASP.NET会话状态值交换

ASP.NET会话状态值交换,asp.net,session,Asp.net,Session,我们有一个旧的ASP.NET 2.0 web窗体应用程序,它运行在客户的硬件上,广泛使用会话状态。 该网站当前运行在旧的Windows 2003 web服务器上(即将更换),并且当前配置为将SQL server用于会话状态存储 我们最近发现了一个问题,当不同的用户同时点击同一页面时,一些会话数据在会话之间交换。 这些用户完全不相关,具有不同的会话ID,并且来自不同的IP地址 特别是有一个变量正在被交换。这是一个数组,包含许多不同的信息和数据类型(字符串、整数和日期)。它的根的宿醉 两个用户都在同

我们有一个旧的ASP.NET 2.0 web窗体应用程序,它运行在客户的硬件上,广泛使用会话状态。 该网站当前运行在旧的Windows 2003 web服务器上(即将更换),并且当前配置为将SQL server用于会话状态存储

我们最近发现了一个问题,当不同的用户同时点击同一页面时,一些会话数据在会话之间交换。 这些用户完全不相关,具有不同的会话ID,并且来自不同的IP地址

特别是有一个变量正在被交换。这是一个数组,包含许多不同的信息和数据类型(字符串、整数和日期)。它的根的宿醉

两个用户都在同一页面上按下了一个按钮,在几毫秒内生成了两个POST请求。我们的日志记录了会话状态中的一些值。 对这些POST请求的响应是重定向到流程中的下一页

日志记录记录了下一页相隔200毫秒的两个GET请求,并记录了这两个请求的会话状态信息。除此数组中的值外,会话状态变量看起来是正确的

这些似乎已被交换。用户A现在正在使用用户B开始使用的阵列,反之亦然

以前有人见过这样的东西吗

该系统将在未来几个月内重新编写/升级,但在此之前,我们确实需要一个临时解决方案

谢谢
Gavin

经过数小时的代码审查,我发现有人在类上使用静态字段,将httpcontext分配给它,然后使用该静态字段中的会话


因此,会话状态变量的随机交换取决于调用函数的确切时间。

提供了一些代码…?是否使用了无Cookie会话?是否尝试了网络跟踪以显示每个客户端的表单值按预期发送?您的其他用户中是否没有其他这样的实例?基本应用程序和/或系统错误重新状态/会话管理似乎可能会影响两个以上的特定用户。它正在使用cookies作为会话id。它不是孤立于两个特定用户的,并且在少数情况下,它似乎只是由两个不同的用户在同一页面上执行相同的操作。