WCF 的一个常见问题似乎是如何在 wsdl 中解析指向其他文件的链接的主机名。问题是把电脑的机器名放到了wsdl里面是为了链接其他的wsdl文件,所以如果你访问 http://myhost/service.svc 它可能指向另一个位置的 wsdl 的其余部分,即 http://mypc/service.svc?wsdl 这显然是你在外部看不到的东西。
已经有一些解决方案,这是常见的解决方案。您可以在哪里设置主机 header 。
我的问题是,在使用外部 IP 时如何解决此问题。我从他们的网站连接到客户总部以检索数据,它没有使用 dns 等设置,并且 ip 在内部重新路由到机器。有没有办法强制托管 WCF 的机器在 wsdl 文件中显示外部地址而不是机器名称?
我使用 SSL 进行连接,这可能会有所不同(与主机 header 一样)。
最佳答案
您需要在 IIS 中为网站的 secureBingings 配置主机头。
这是一篇关于WCF WSDL & xsd:import schemaLocations link to local machine name not domain name while hosted in IIS的文章
关于.net - 带有 HTTPS 的 WCF WSDL 位置地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/442342/