【问题标题】:WCF WSDL location address with HTTPS带有 HTTPS 的 WCF WSDL 位置地址
【发布时间】:2009-01-14 09:05:02
【问题描述】:

WCF 的一个常见问题似乎是如何在 wsdl 中解析主机名以获取到其他文件的链接。问题是计算机的机器名称被放入 wsdl 以链接其他 wsdl 文件,因此如果您访问 http://myhost/service.svc 它可能会指向另一个位置的 wsdl 的其余部分,ie http://mypc/service.svc?wsdl 这显然是你在外部看不到的。

已经有一些解决方案,这是常见的解决方案。您可以在哪里设置主机标头。

我的问题是,使用外部 IP 时如何解决这个问题。我正在从他们的网站连接到客户总部以检索数据,它没有使用 dns 等设置,并且 ip 在内部重新路由到机器。有没有办法强制托管 WCF 的机器在 wsdl 文件中显示外部地址而不是机器名称?

我正在使用 SSL 进行连接,这可能会有所不同(与主机标头一样)。

【问题讨论】:

    标签: .net wcf networking hosting


    【解决方案1】:

    您需要在 IIS 中为网站的secureBingings 配置主机头。

    这是一篇关于WCF WSDL & xsd:import schemaLocations link to local machine name not domain name while hosted in IIS的文章

    【讨论】:

    • 感谢您的回答,但这仅涵盖使用替代主机名的情况。它不能解决使用 IP 访问网络服务的问题。
    • 您是否尝试将外部 IP 添加到主机标头,例如\安全绑定“443:ip.ip.ip.ip”?
    【解决方案2】:

    是的,您可以将 IP 地址设置为主机标头。只需确保外部 IP 地址在内部也能被实际识别。在我们的一个项目中,我们使用 ISA 服务器作为代理时,我很难学到这一点。

    如果你遇到过这种情况,还是坚持使用外部IP地址作为主机头,那么你唯一的选择就是将web服务的机器名添加到hosts文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 2010-09-26
      • 2012-07-29
      • 2017-08-16
      • 2013-10-14
      • 2017-06-27
      相关资源
      最近更新 更多