带有 NLB 的 WCF 服务

标签 wcf load-balancing

我有一个 WCF 服务,当前托管在 NLB 后面的两台服务器上。 两个服务器地址是(例如)t001.mydomain.comt002.mydomain.com NLB地址为services.mydomain.com 。两者t001t002拥有 services.mydomain.com 的 SSL 证书

我们搬了几个ASMX服务新WCF模型。当我第一次将服务放在两台服务器上时,我在使用 WSDL 时遇到了问题。一项服务正在运行,但其他服务给我一个错误,指出他们无法创建安全连接,因为证书无效。

我将 URL 放入 Chrome 中,我注意到正在运行的服务具有如下所示的 WSDL URI:http://services.mydomain.com/services/service1.svc无法运行的服务的 URI 为 http://t001.mydomain.com/services/service2.svc 。所以我明白为什么证书对于这些服务无效。

我为解决此问题所做的工作(在查看配置文件中的差异之后)是将以下行添加到无法正常工作的服务的配置文件中:

<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

现在,我有点明白为什么会这样了。我知道它是一个解决方案,但我不知道它是否是我的问题的解决方案。

这是解决这个问题的方法吗?有没有更好/更推荐的方法来解决这个问题?也许有人可以向我指出解释这一点的权威来源,因为我找不到真正的来源。

最佳答案

这不起作用,因为 cert.域部分不同。参见

关于主机名的事情 - 除非您使用完全限定的域名,否则某些系统将无法正常工作。其他人则没有那么挑剔。无论如何 - 证书的主题 DN 应唯一地描述它所代表的服务、应用程序或服务器。

来自这篇文章Mutual WCF certificate authentication/SSL in cluster environment

更多详细信息可以在这里找到:http://technet.microsoft.com/en-us/library/dd439393(v=exchg.80).aspx

关于带有 NLB 的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16008086/

相关文章:

azure - 如何在不同区域为自定义域复制 SSL 证书

security - 如果我们在负载均衡器而不是服务器上安装 SSL 证书,是否有任何安全风险?

WCF 终结点配置错误 : The 'contract' attribute is invalid?

wcf - 指定与 WCF 客户端一起使用的传出 IP 地址

c# - 从 WCF 返回多个响应

wcf - 将库转换为 WCF Web 服务

Azure 提供的负载均衡器名称解析

load-balancing - Google 计算引擎负载平衡无法正确路由

signalr - SignalR (v2+) 是否适用于没有背板的粘性 session ?

c# - Microsoft ServiceBus - 参数实体名称为 null 或为空