在本机上新建了一个WCF服务类库,  它会自动生成Service1.svc和一些方法.   我没增加或修改任何配置. 直接发布, 再通过FTP上传到别的机器的IIS上面. 这时在本机上新增服务引用,  直接调用里面的方法时, 却会报错.错误信息为: 调用方未由服务进行身份验证。不信大家可以试试看. 服务器最好用另外一台机器.  为什么WCF会有这样的错误呢.我在网上查了一下. 解决方法也就是将security mode="None" , 可为什么这样设置就可以呢.希望大家能从原因上告诉我. 为什么会有这种错误.

解决方案 »

  1.   

    引用MSDN上面的回答。 这个问题的原因是这样的,主要和WCF的默认安全设置有关系。1.你创建的WCF服务,默认的是使用WSHttpBinding,这个绑定默认情况下使用Message消息安全模式,消息安全要求服务端提供证书。这个证书是用来证明服务端身份的。客户端和服务端在建立连接以前会协商,如果服务没有证书,就不会建立连接。也就是你看到的错误。2.security mode="None"这个设置是说不启用安全,不启用安全的情况下,客户端和服务端不需要做身份确认就可以直接建立连接进行通信。