WCF服务错误:MessageSecurityException: 从另一方收到未进行安全处理或安全处理不正确的错误
在使用WCF服务时,如果客户端调用服务时出现如下错误:
System.ServiceModel.Security.MessageSecurityException: 从另一方收到未进行安全处理或安全处理不正确的错误。有关错误代码和详细信息,请
参阅内部 FaultException。 ---> System.ServiceModel.FaultException: 消息中至少有一个安全令牌无法验证。
--- 内部异常堆栈跟踪的结尾 ---
解决方案
这种情况可能是因为客户端和服务端时间不一致造成的,客户端和服务端所允许的时间差可以是5分钟.客户端要和服务端进行时间同步.
可以使用命令:net time file://ip/地址或服务器名 /set /yes ,但这样操作对服务器的安全有影响,目前我还没有想到好的解决方法.不知大家有什么好的方法.
另一种说法是服务端的Web.Config文件与客户端的App.Config文件内的安全模式定义不一致,参考下面的代码:
<security mode="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true"
algorithmSuite="Default" establishSecurityContext="true" />
</security>
security mode服务端与客户端保持一致。