在我们已经创建成功一个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报错之调用方未由服务器进行身份验证》