【发布时间】:2014-09-23 04:08:26
【问题描述】:
我们有一个普通的 WCF 服务,它的绑定如下所示:
<wsHttpBinding>
<binding name="ServiceBinding" receiveTimeout="00:10:00" sendTimeout="00:10:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxReceivedMessageSize="20971520"
messageEncoding="Mtom" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<security mode="Message">
<message clientCredentialType="Windows" negotiateServiceCredential="true"
establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
此服务位于负载平衡器后面的 2 台服务器中。按照这里的建议
http://msdn.microsoft.com/en-us/library/vstudio/hh273122(v=vs.100).aspx
我已将建立安全上下文设置为假。当我运行调用服务时,我会遇到与无效安全上下文令牌相关的间歇性问题。即使我说不要建立SeurityContext,WCF 似乎也在做所有正常的握手工作。
由于要求,此时使用 Cert、BasicHttBinding 或无安全性不是一个选项。
我什至让基础架构团队在负载均衡器中启用粘性会话,但似乎没有任何工作按我们预期的方式工作。
我和我的团队几乎完成了互联网上所说的所有事情,但是当有负载均衡器时似乎没有任何效果,而当没有负载均衡器时,此绑定工作完美。
有没有人用这个绑定运气好?
我们正在追赶微软向我们发送 WCF 专家,但显然人们很难找到。
我怎样才能让这个东西与负载均衡器很好地工作?
【问题讨论】:
标签: c# wcf load-balancing wcf-security ws-security