【发布时间】:2012-03-12 12:47:21
【问题描述】:
我有四个不同的服务器和一个负载平衡器。我想使用验证码控制。我是这样处理的:
我创建了一个 handler.ashx 来创建验证码图像。此处理程序用于主页。在创建验证码控件时,我将验证码控件密码保留在会话中。然后我将用户输入的密码与会话中的密码进行了比较。它工作得很好,但只在一台服务器上。
四台服务器无法正常运行。尽管用户每次都输入正确的密码,但有时与会话密码匹配,有时不匹配。我认为问题的原因是这样的:
例如:
A、B、C 和 D 是四台服务器。负载均衡器将第一个请求路由到 A 服务器。从 A 服务器打开主页并创建密码“123456”。这存储在 A 服务器上的会话中。然后用户输入密码并单击按钮。现在负载均衡器将此请求路由到 B 服务器。因为 B Sever 中的 session 为空,所以密码不匹配。
我的 web.config 有这个,
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424"/>
但是还是不行。
我该怎么办?
【问题讨论】:
标签: asp.net session session-state load-balancing