具有负载平衡的HttpContext.Current.Session

时间:2012-09-25 17:43:28

标签: asp.net session httpcontext

我正在观察一个奇怪的情况,我希望有人有一些见解。这不是一个理想的情况(试图支持遗留的东西)。我在观察的内容在这个例子中说明了:

我的负载均衡服务器池中有一台服务器。在从loadbalance url加载的外部页面中,我将一些值填充到Page_Load中的HttpContext.Current.Session中。

在该页面上是一个iframe,它从特定的服务器URL(与负载均衡页面命中的服务器相同的服务器)加载内部页面。内页的Page_Load中的HttpContext.Current.Session没有我从外页填入的值。

我曾经认为,根据用户cookie中的任何内容,它都是特定于机器的。 HttpContext.Current.Session是否依赖于url?

1 个答案:

答案 0 :(得分:1)

这里有很多因素。首先,你确定它是从同一台机器加载网址吗?请记住,iframe是基于客户端的,而不是基于服务器的。这意味着当iframe加载另一个页面时,它也会通过负载均衡器,除非您有一些机制来确保它保持在同一页面上(例如粘性会话)。

其次,您使用相同域名的iframe使用的网址是什么?两者都使用相同的传输(http或https)?如果其中任何一个不同,它将为iframe创建一个新会话。