我想部署WCF Web服务,但要完美,必须从任何计算机,LAN和WAN访问WSDL。
问题是当使用本地局域网时,通过公共IP访问的WAN用户无法下载引用(导入),因为WDSL使用URL中的本地IP。
所以,这是非常令人沮丧的,因为正确的方法是WSDL生成器使用“主机”HTTP头来包含,以便在任何情况下工作(本地局域网IP,公共IP),因为这是客户端看到的方式资源
这可能吗?
答案 0 :(得分:0)
如果从版本3.5开始为WCF将httpGetUrl
元素的serviceMetadata
属性设置为documented here,则可以控制WCF服务在WSDL中发布的URL。如果您设置绝对地址以使用DNS注册的主机名,那么您的所有客户端都可以访问它。
在某些情况下(例如负载均衡的服务器),您可能还需要set the useRequestHeadersForMetadataAddress
attribute这是WCF 4.0及更高版本的功能。