关于WCF报错之调用方未由服务器进行身份验证

时间:2022-11-03 20:21:28

在我们部署好WCF服务以后,调用WCF服务会出现”调用方未由服务器进行身份验证”的错误。这个错误是怎么造成的呢?

通常我们在创建WCF后,用本机调试,一切正常,没有任何问题。其实用本机测试的时候,服务端和客户端是默认建立了一个身份认证。而我们将WCF部署在其他服务端上后,

这样的身份验证便不再存在。因此,系统便会报调用方未由服务器进行身份验证的错误。这个问题怎么解决呢?

解决方法:

1、在WCF的服务端配置文件和客户端配置文件中声明一段Bindings

    <bindings>
<wsHttpBinding>
<binding name="NoneSecurity" maxBufferPoolSize="12000000" maxReceivedMessageSize="12000000" useDefaultWebProxy="false">
<readerQuotas maxStringContentLength="12000000" maxArrayLength="12000000"/>
<security mode="None"/>
</binding>
</wsHttpBinding>
</bindings>

ps:这段xml要放在 <system.serviceModel>下

2、在WCF服务端配置文件的endpoint节点中加入绑定属性 bindingConfiguration="NoneSecurity" 如:

关于WCF报错之调用方未由服务器进行身份验证

PS:bindingConfiguration的值为binding的name,这个name可以取任意名字

3、在WCF的客户端配置文件中也要加入绑定属性 bindingConfiguration="NoneSecurity" 如:

关于WCF报错之调用方未由服务器进行身份验证

设置完成后,再次运行,错误消失。服务正常运行。

注意:此方法仅适用于没有什么安全性需求的服务设置。如果对安全性有要求,谨慎使用!!!