我发现,描述与我相似的问题,但不够紧密的文章。 我有一个真正的间歇性问题,其中一个用户可以登陆另一个用户会话,并最终看到了一些中所储存的会话他们的信息。 这里是我的情况:我们在利用应用程序请求路由和Web场框架的负载均衡的环境中使用AbleCommerce。 我们使用的进程内的会议,但我们已经配置和工作粘性会话(客户端/服务器关系)。 我已经验证没有缓存(使用页面输出缓存,无缓存ARR,没有IIS或WAAS缓存无关)导致此问题。 存储在很偶然的在别人的浏览器结束会话的信息通过基于会话的单例对象保存在session。
例如:
public class ExampleObject
{
public string ExampleData{get; set;}
public static TicketingSession Instance
{
get
{
if (HttpContext.Current.Session["ExampleObject"] == null)
{
HttpContext.Current.Session["ExampleObject"] = new ExampleObject();
}
return (ExampleObject)HttpContext.Current.Session["ExampleObject"];
}
}
}
然后在其他一些代码,我可以用这个:
ExampleObject.Instance.ExampleData = "whatever";
//or
txtSomeTextBox.Text = ExampleObject.Instance.ExampleData;
我知道我应该在负载均衡的环境中避开静态数据和进程内的会议,但由于我使用的客户机/服务器的亲和力和因为我使用这个静态的对象只是一个属性卫生组织吸气剂简单地直接从返回对象会话状态我没有看到一个问题。