1

我们有一个集群,其中 WCF 服务作为资源运行,每个资源都在一个单独的资源组中。这些组有一个 dns 别名,命名为 cap 名称,例如 APPQA en APPPROD,每个组都有一个 IP 10.110.250.1 和 10.110.250.2。

实际上,它是相同的 WCF 服务,但运行在另一个 baseAdress 上,例如我们的 baseAdress 示例:

<add baseAdress="net.tcp://appqa.domain.com:4504/.... 

and 

<add baseAdress="net.tcp://appprod.domain.com:4504/.... 

但是当在同一个节点上运行这些服务时,我们注意到我们收到了错误,比如有地址正在使用中。

我们发现这很奇怪,因为我们在基地址部分添加了我们的别名,这是我们两个别名的 nslookup,这给了我们两个正确的 IP 地址。

当只运行PROD服务时,我对QA的IP地址和4504端口做了一个telnet命令。我能够建立连接,这意味着我们实际上在两个 IP 地址(或所有地址和端口,如 0:0:0:0:4504)上运行。

作为一个额外的测试,我们将我们的基本地址更改为

<add baseAdress="net.tcp://10.110.250.1:4504/.... 
<add baseAdress="net.tcp://10.110.250.2:4504/.... 

然后我们可以在同一个节点上相邻运行这两个服务,所以我们证明我们的服务工作只有 dns 解析不起作用。

当我们启用端口共享时,这一切都有效,但由于 SLA 不同,我们不想这样做。

有人知道我们如何强制 WCF 使用他的 dns 别名的 IP 地址吗?

4

0 回答 0