在WCF客户端上维护用户会话,同时调用负载平衡后的服务器
本文关键字:负载 调用 平衡 服务器 客户端 WCF 维护 会话 用户 | 更新日期: 2023-09-27 18:29:12
我的问题如下:-我有一个.Net MVC站点,它对承载在负载平衡服务器(BIGip)后面的两个服务器中的WCF服务进行了大量调用。
我必须在WCF服务上维护一个用户会话(由自定义令牌控制)。我的问题是,当很多用户登录网站时(对服务的大量并发调用),粘性会话就不起作用了。
我发现,当站点调用重用现有连接的服务时,负载平衡服务器会忽略粘性会话cookie,并将请求转发给通过该连接接收到调用的最后一台服务器。
我使用嗅探器(Wireshark)进行了检查,每个调用都会用正确的粘性会话令牌发送到负载平衡服务器。
当从头开始创建连接时,将考虑粘贴会话cookie,并将请求发送到正确的服务器。
那么,我该如何处理这种情况呢?我正在寻找在每次调用时强制创建新连接的方法,但属性KeepAliveEnabled="false"不起作用。
Tks。
我的问题是使用到Framework 4的正确keepAliveConnection配置解决的。波纹管是配置。
错误的
<bindings>
<customBinding>
<binding name="WSHttpBinding_IServiceSessionCreator" keepAliveEnabled="false">
<httpTransport />
</binding>
</customBinding>
</bindings>
正确的
<bindings>
<customBinding>
<binding name="WSHttpBinding_IServiceSessionCreator" >
<textMessageEncoding />
<httpTransport allowCookies="false" keepAliveEnabled="false"/>
</binding>
</customBinding>
</bindings>
我不知道为什么第一个不起作用。我在这个链接中看到了http://msdn.microsoft.com/en-us/library/vstudio/ms730128(v=vs.100).aspx