【发布时间】:2011-03-02 07:47:47
【问题描述】:
我们在防火墙和硬件负载平衡器后面有 4 台机器。
我们正在尝试设置会话状态服务器。当我们这样做时,我们会收到以下错误:
消息:System.Net.Sockets.SocketException (0x80004005):连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 210.18.207.181:80在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout,异常&异常)
请注意,错误消息中的 IP 地址是负载均衡器的 IP,但是当我们在服务器之间进行跟踪时,它不会通过负载均衡器。 NLB 位于服务器前面(在它们和 Internet 之间),并且所有服务器都在同一个 LAN/子网上。
会话状态服务已启动。并且 web.config 包含以下内容:
<sessionState
mode="StateServer"
stateConnectionString="tcpip=xxx.yyy.zzz.www:42424"
/>
其中 xxx.yyy.zzz.www 是 NLB 后面的服务器之一的 IP 地址。所有服务器在同一个 LAN/子网上相互通信,它们之间没有任何东西。尽管如此,异常(上图)包含负载均衡器的 IP。
任何帮助将不胜感激。
【问题讨论】:
-
为什么你使用机器的公共IP作为状态服务器,为什么不使用机器的私有IP{Lan/local IP}?
-
web.config 的状态服务器部分是什么样的?
标签: asp.net session-state appfabric session-state-server