C# 在WCF客户端上维护用户会话,同时在负载平衡后调用服务器

C# 在WCF客户端上维护用户会话,同时在负载平衡后调用服务器,c#,.net,wcf,load-balancing,keep-alive,C#,.net,Wcf,Load Balancing,Keep Alive,我的问题如下: -我有一个.NETMVC站点,在负载平衡服务器BIGip后面的两台服务器上对WCF服务进行大量调用 我必须在由自定义令牌控制的WCF服务上维护用户会话。 我的问题是,当大量用户登录到站点并同时调用大量服务时,粘性会话不起作用 我发现,当站点重用现有连接调用服务时,负载平衡服务器会忽略粘性会话cookie,并将请求转发到通过该连接接收调用的最后一个服务器 我使用sniffer Wireshark进行了检查,每个调用都使用正确的粘性会话令牌发送到负载平衡服务器 当从头开始创建连接时,

我的问题如下: -我有一个.NETMVC站点,在负载平衡服务器BIGip后面的两台服务器上对WCF服务进行大量调用

我必须在由自定义令牌控制的WCF服务上维护用户会话。 我的问题是,当大量用户登录到站点并同时调用大量服务时,粘性会话不起作用

我发现,当站点重用现有连接调用服务时,负载平衡服务器会忽略粘性会话cookie,并将请求转发到通过该连接接收调用的最后一个服务器

我使用sniffer Wireshark进行了检查,每个调用都使用正确的粘性会话令牌发送到负载平衡服务器

当从头开始创建连接时,会考虑stick会话cookie,并且请求会发送到正确的服务器

那么,我该如何处理这种情况呢? 我正在寻找在每次调用时强制创建新连接的东西,但是属性KeepAliveEnabled=false不起作用


Tks.

我的问题是使用正确的keepAliveConnection配置来解决框架4。 下面是配置

错的

<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>
我不知道为什么第一个不起作用。
我在这个链接中看到了它

尝试通过将会话数据移动到数据库或AppFabricIt之类的同步存储中来减少伪状态。这是我的解决方案,但我现在正在避免这种情况,Tks!请注意,粘性会话会在机器停机进行修补、部署或维修时产生问题。这使得它们在大多数情况下都是不可行的解决方案。我确实知道涉及粘性会话的问题,但是我没有打开该项目以避免使用它。考虑到我最终读到的内容,可以控制响应请求的服务器发送正确的cookie,但我不知道负载平衡服务器为什么在重用的连接中忽略它。