![](/img/trans.png)
[英]WCF: Could not establish trust relationship for the SSL/TLS secure channel with authority
[英]SSL WCF "Could not establish trust relationship for the SSL/TLS secure channel with authority 'localhost'
我有一個與http地址完美配合的WCF Web服務,但從那時起我需要確保它可以在https上運行。
因為我用IIS 7,這個過程是很容易得到網站的https結合起來,使用本指南運行在這里
我打開了一個瀏覽器,得到了通常的安全提示,但是在添加異常后一切正常。
然后我決定安裝證書,因為證書是本地主機,服務器和客戶端是同一台機器 - 並讓向導自動檢測位置。
我回到了我的WCF CLIENT代碼,這是調用IIS(現在是https)托管的Web服務的客戶端,並在2個位置更改了綁定。
跑了代碼然后得到這個錯誤:
“無法與權限'localhost'建立SSL / TLS安全通道的信任關系。”
最后我回到IIS並在SSL設置下,將設置更改為接受客戶端證書,並嘗試檢查是否需要檢查,兩次都產生相同的錯誤。
知道如何解決這個問題嗎?
更新問題1已修復 - 這是因為證書已發布到machine_name,我在配置中使用了localhost。
現在,這是有效的我得到另一個問題:
在https:// [machine_name] /Downloads.svc上沒有可以接受該消息的端點。 這通常是由錯誤的地址或SOAP操作引起的。 有關更多詳細信息,請參閱InnerException(如果存在)。“
內部異常=“遠程服務器返回錯誤:(404)未找到。”
檢查IIS站點的web.config,並將DNS綁定更改為localhost。
仍然很開心,但根據微軟的說法,這正是WCF應該很好的原因,因為它將編碼邏輯中的傳輸分開,但到目前為止,我必須告訴你,它看起來真的很復雜。
更新
關掉windows防火牆,沒幫......
這是我在web.config中的綁定
<basicHttpBinding>
<binding name="IncreasedTimeout"
closeTimeout="12:00:00" openTimeout="12:00:00"
receiveTimeout="12:00:00"
maxReceivedMessageSize="1000000"
sendTimeout="12:00:00">
<security>
<transport></transport>
</security>
</binding>
</basicHttpBinding>
您很可能需要為這兩個協議添加顯式基地址 ,以便WCF知道您要綁定到這兩個協議。 嘗試將此添加到您的<service>
定義:
<host>
<baseAddresses>
<add baseAddress="http://your-hostname-here/" />
<add baseAddress="https://your-hostname-here/" />
</baseAddresses>
</host>
此外,請確保您通過計算機的WINS / DNS名稱訪問服務,或者需要向IIS下的網站實例添加顯式主機標頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.