我们有一个集群,WCF服务作为资源在一个独立的资源组中运行。这些组有一个名为to cap name的dns别名,例如: APPQA和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/....
但是当在相同的节点上运行这些服务时,我们注意到我们收到的错误就像正在使用Address一样。
我们发现这很奇怪,因为我们在基地址部分添加了别名,我们两个别名的nslookup,这给了我们两个正确的IP地址。
当只运行PROD服务时,我对QA和4504端口的IP地址执行了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地址吗?