在我們部署好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" 如:

PS:bindingConfiguration的值為binding的name,這個name可以取任意名字
3、在WCF的客戶端配置文件中也要加入綁定屬性 bindingConfiguration="NoneSecurity" 如:

設置完成后,再次運行,錯誤消失。服務正常運行。
注意:此方法僅適用於沒有什么安全性需求的服務設置。如果對安全性有要求,謹慎使用!!!
