对WCF客户维护用户会话,同时拨打电话到服务器后面的负载均衡

问题描述:

我的问题是: - 我有一个.net MVC网站制作两个服务器托管的负载平衡服务器落后很多调用WCF服务(BIGIP)。对WCF客户维护用户会话,同时拨打电话到服务器后面的负载均衡

我必须保持对WCF服务的用户会话(通过自定义的令牌控制)。 我的问题是,当很多用户在网站上登录时,粘性会话不起作用(很多并发的服务调用)。

我发现当站点调用服务重用现有连接时,负载均衡服务器忽略粘滞会话cookie,并将请求转发给通过此连接接收呼叫的最后一个服务器。

我检查使用嗅探器(Wireshark的),每个呼叫发送到与正确的粘性会话令牌负载均衡服务器。

当从头开始创建一个连接棒会话cookie是考虑到和请求进入到正确的服务器。

所以,我该怎么处理这种情况? 我正在寻找强制在每次调用时创建新连接的内容,但属性KeepAliveEnabled =“false”不起作用。

Tks。

+3

尽量做到伪无状态的会话数据移动到同步店如数据库或AppFabric的 – TGlatzer 2014-11-05 18:08:20

+0

这是我的解决方法解决方案,但现在我避免这种汇众! – 2014-11-05 18:09:14

+0

请注意,即使机器停机以进行修补,部署或修理,粘性会话也会产生问题。这使得他们大多数时间都是不可行的解决方案。 – usr 2014-11-05 19:16:48

我的问题是解决了使用正确的keepAliveConnection配置框架4. 贝娄是在CONFIGS。

错误的一个

<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