导航

关于WCF测试时出现无法从***获取元数据问题

Posted on 2016-08-08 13:44  mylydg  阅读(2485)  评论(0编辑  收藏  举报

在我们已经创建成功一个WCF服务后,通过本机localhost访问和测试均没有任何问题。但是寄宿在IIS/其他平台下时便会出现以下的错误信息

1、使用WCF Test Client错误

2、通过C#引用服务引用错误

这是为什么呢?在本机的情况下一切正常,但是只要部署在服务端便报错。经查询相关技术文档发现了问题所在。原因为:

在本机环境测试,使用url地址为localhost,如http://localhost:8888/Service访问没有问题。

然后,将服务部署在服务器以后,将localhost更换为服务器IP地址在浏览器中访问依然没有问题。但由于xml配置其实还是localhost,服务需要调用wsdl文件的时候访问路径依然为http://localhost:8888/Service?wsdl而不是http://192.168.1.100:8888/Service?wsdl。所以,部署在服务端后需要调用wsdl时系统便找不到相应的xml文件,肯定会报错。如:

 

解决办法为:

将WCF部署在服务端时需要将配置文件中的访问地址更改为服务端的ip地址:

 

PS:更改baseAddress地址,同时会更改访问地址和wsdl地址。

更改完成以后,我们再次通过浏览器访问WCF服务。

这时全部访问默认url路径便修改正确了,不会再报上述的错误了。

 另外:如果在调用WCF的方法时,提示“调用方未由服务器进行身份验证“,请看《关于WCF报错之调用方未由服务器进行身份验证