6

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

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

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

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

4

2 回答 2

4

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

这是一篇关于WCF WSDL 和 xsd 的文章:在 IIS 中托管时,导入 schemaLocations 链接到本地​​机器名而不是域名

于 2009-02-22T07:03:41.160 回答
0

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

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

于 2009-05-21T11:57:39.223 回答