關於WCF報錯之調用方未由服務器進行身份驗證


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

設置完成后,再次運行,錯誤消失。服務正常運行。

注意:此方法僅適用於沒有什么安全性需求的服務設置。如果對安全性有要求,謹慎使用!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM