代码改变世界

WCF 部署时,soap:address location 显示的是电脑名,而不是ip地址

2015-01-28 15:14  Dorisoy  阅读(1063)  评论(0编辑  收藏  举报

部署WCF服务时,发现soap:address location 和wsdl:import location 显示是电脑名,而不是ip地址,这样外面公司的人就无法下载剩下的wsdl,post也会往错误的地址发。

搜半天,网上居然没有人正确的解决这个问题,msdn上MS公司的人说用external schema location,太糟糕了。

终于搞出来了,应该在web.config里加上  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />

multipleSiteBindingsEnabled="true" 一定要设置成true

试一试true和false很快就能发现差别,

true

soap:address location 和wsdl:import location 显示和url里面的ip或者域名是一致的

false 

只显示电脑名。

 

补充:multipleSiteBindingsEnabled 是。net framework 4里面支持的特性,如果版本低于4,例如3.5 那么就要根据IIS binding来设置baseAddress,具体参见我的另一篇博客

WCF的配置文件的baseAddress的真正含义

http://blog.csdn.net/cjq1234/article/details/9200457