部署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,具体参见我的另一篇博客
http://blog.csdn.net/cjq1234/article/details/9200457