【问题标题】:WCF Client with multiple NICS must use a specific IP Address具有多个 NICS 的 WCF 客户端必须使用特定的 IP 地址
【发布时间】:2015-04-03 15:05:22
【问题描述】:

我有一个正在集群服务器上运行的 WCF 客户端应用程序。这意味着我至少有2个IP地址,实际机器地址和集群地址。

服务器端防火墙只识别集群地址,是的,我们可以将所有可能的地址添加到防火墙,但这不是我的客户想要的。

所以我需要能够从客户端应用程序中选择要使用的 IP 地址。我原以为会有类似于用于 WCF 的 TCP 绑定的语法。

WCF 客户端配置是非常基本的,并且工作得很好,直到它在集群服务器上运行。

有人会认为这不是一个罕见的配置,应该有一个标准的配置解决方案,我就是找不到。

有什么建议吗?

<client>
<!--
    Server II
-->
    <endpoint address="https://test.us/JLink/Service.svc"
              binding="wsHttpBinding" 
              bindingConfiguration="WSHttpBinding_Service"
              contract="Svc.IService" 
              name="WSHttpBinding_Service">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
</client>

这不是托管在 IIS 中的。

【问题讨论】:

  • 我怀疑您想在 IIS 中使用正确的 IP 绑定正确设置 http://test.us/。由于 WCF 使用 Windows Activation Service 让 IIS 将 http 调用重定向到应用程序。如果您的应用程序实际上托管在 IIS 中,这将更加容易,看起来就是这样(给定.svc 服务地址)。
  • test.us 是目标地址,与客户端用于通信的地址无关。远程防火墙拒绝任何不是来自集群地址的东西。

标签: c# wcf


【解决方案1】:

TLDR:绑定到 IP 不是 .net 的责任。请参阅您选择的 Web 服务器上的文档(最有可能是 IIS)。

我怀疑您想在 IIS 中使用正确的 IP 绑定正确设置 http://test.us/。由于 WCF 使用 Windows Activation Service 让 IIS 将 http 调用重定向到应用程序。如果您的应用程序实际上托管在 IIS 中,这将更加容易,看起来就是这样(给定 .svc 服务地址)。

本网站将向您展示如何为 IIS http://www.visualwin.com/Host-Header/ 执行此操作

当您到达询问“输入用于此网站的 IP 地址”的部分时,只需输入您要绑定的 IP 地址即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    相关资源
    最近更新 更多