在我们部署好WCF服务以后,调用WCF服务会出现”调用方未由服务器进行身份验证”的错误。这个错误是怎么造成的呢?
通常我们在创建WCF后,用本机调试,一切正常,没有任何问题。其实用本机测试的时候,服务端和客户端是默认建立了一个身份认证。而我们将WCF部署在其他服务端上后,
这样的身份验证便不再存在。因此,系统便会报调用方未由服务器进行身份验证的错误。这个问题怎么解决呢?
解决方法:
1、在WCF的服务端配置文件和客户端配置文件中声明一段Bindings
<bindings>
<wsHttpBinding>
<binding name="NoneSecurity" maxBufferPoolSize="" maxReceivedMessageSize="" useDefaultWebProxy="false">
<readerQuotas maxStringContentLength="" maxArrayLength=""/>
<security mode="None"/>
</binding>
</wsHttpBinding>
</bindings>
ps:这段xml要放在 <system.serviceModel>下
2、在WCF服务端配置文件的endpoint节点中加入绑定属性 bindingConfiguration="NoneSecurity" 如:
PS:bindingConfiguration的值为binding的name,这个name可以取任意名字
3、在WCF的客户端配置文件中也要加入绑定属性 bindingConfiguration="NoneSecurity" 如:
设置完成后,再次运行,错误消失。服务正常运行。
注意:此方法仅适用于没有什么安全性需求的服务设置。如果对安全性有要求,谨慎使用!!!