如何将导入位置设置为使用客户端请求的同一主机(http 标头)



我想部署一个 WCF Web 服务,但为了完美,WSDL 必须从任何计算机(局域网和广域网)访问。

问题是,当使用本地局域网 IP 时,通过公共 IP 访问的 WAN 用户无法下载引用(导入),因为 WDSL 使用 URL 中的本地 IP。

因此,这是非常令人沮丧的,因为正确的方法是WSDL生成器使用"主机"HTTP 标头进行包含,以便在任何情况下(本地局域网IP,公共IP)工作,因为这是客户端查看资源的方式

这可能吗?

如果按照此处对从版本 3.5 开始的 WCF 设置serviceMetadata元素的 httpGetUrl 属性,则可以控制 WCF 服务在 WSDL 中发布的 URL。如果将绝对地址设置为使用 DNS 注册的主机名,则所有客户端都将能够访问它。

在某些情况下(如负载平衡服务器),您可能还需要设置 useRequestHeadersForMetadataAddress 属性,该属性是 WCF 版本 4.0 及更高版本的功能。

最新更新