我想部署 WCF Web 服务,但要做到完美,必须从任何计算机访问 WSDL,从 LAN 和 WAN。
问题是当使用local lan ip时,通过公网IP访问的WAN用户无法下载引用(导入),因为WDSL在URL中使用了本地ip。
因此,这非常令人沮丧,因为正确的方法是 WSDL 生成器使用“主机”HTTP Header 进行包含以便在任何情况下工作(本地 lan ip、公共 ip),因为这是客户端查看资源的方式
那可能吗?
如果您设置元素的httpGetUrl
属性,那么您可以控制 WCF 服务在 WSDL 中发布哪些 URL,如此处所述的 WCF 从版本 3.5 开始。如果您设置绝对地址以使用 DNS 注册的主机名,那么您的所有客户端都可以访问它。serviceMetadata
在某些情况下(例如负载平衡服务器),您可能还需要设置useRequestHeadersForMetadataAddress
WCF 4.0 及更高版本的特性。