【问题标题】:Server with Load Balancing is redirecting to wrong page具有负载平衡的服务器重定向到错误的页面
【发布时间】:2010-01-06 11:43:52
【问题描述】:
我在服务器上使用负载平衡时遇到问题(使用 IIS 6)。我有一个经理网站,大部分时间都能正常工作,但有时当我转到该经理内的另一个页面时,它不会重定向到正确的页面,而是重定向到它的登录页面。
我不认为这是一个超时问题,因为如果我按 F5 它将重定向到正确的页面。我想这是负载平衡的问题,因为我试图在另一台没有负载平衡的机器上运行管理器(仍然使用 IIS 6)并且它运行良好。
我正在使用 ASP.NET 3.5。
有人能弄清楚为什么会这样吗?
【问题讨论】:
标签:
iis-6
timeout
asp.net-3.5
【解决方案1】:
如果会话信息本地存储在 Web 服务器上,那么当负载平衡器将您的请求发送到该场中的另一台服务器(例如 server2)时 - server2 没有关于您的请求的会话信息,它会正确地将您发送到登录页。当您点击 F5 时,负载均衡器会将您发送到具有身份验证信息并成功显示页面的原始 server1。
您需要将会话信息存储在一个中心位置,以便场中的所有服务器都可以看到它。
【解决方案2】:
一种方法是将会话存储在一个集中的位置,正如 DmitryK 已经指出的那样,另一种方法是将一个会话的请求仅转发到一个服务器。这样 ASP.NET 就可以为此找到会话。您可以使用基于 Cookie 的请求转发或基于 IP 的请求转发。在某些情况下,如果 IP 被某些 NAT(网络地址转换)屏蔽,基于 IP 的转发可能不起作用。请检查负载均衡器提供的所有选项。