WCF“服务器已拒绝客户端凭据”及解决办法

刚才部署了新系统基础版本到测试服务器上给测试组同事测试。


在调用 WCF 服务时,返回异常信息:“服务器已拒绝客户端凭据”。


服务是采用 net.tcp 方式调用,服务端的 bindings 没有设置 security mode 配置。


WCF 的 netTcpBindingnetNamedPipeBindingnetMsmqBinding 在不设置 security mode 时,会默认使用 Transport 模式。
只有 basicHttpBinding 为了兼容 WebService 而默认采用 None 模式。


因此,在不打算使用 Transport 模式的情况下,修改服务端配置,在 Web.config 中的 system.serviceModel 节点添加配置:

<bindings>
   <netTcpBinding>
       <binding>
           <security mode="None"></security>
       </binding>
   </netTcpBinding>
</bindings>

客户端更新服务引用,重新调用服务即可。