錯誤內容:發出 HTTP 要求時發生錯誤。這可能是在 HTTPS 的情況下,未在 HTTP.SYS 正確設定伺服器憑證所造成。也可能是用戶端與伺服器之間的安全性繫結不相符所造成。
發生原因:
1.用WebService資料傳輸的時候,自己local client 端所參考的WebService並沒有設定好。
發出去的是 https://test.com,但卻跟Reference 裡面參考的路徑不一樣,所以會出現錯誤。
2.根據webconfig 設定的<security> 不同也可會出現這樣的錯誤。(以下是我當時,沒改參考檔案時,的<security>寫法)
<binding name="TargetService">
<security mode="Transport" />
</binding>
解法:
把專案參考的WSDL,參考檔相關的路徑都改成https的路徑。
更改Webconfig
這部分的設定是,系統設定asmx的時候,自己新增的屬性,所以我想成是我把別人的地址記在自己手機裡。
1.確認目標Server的驗證方式是哪一種mode。並在webconfig更改 <security mode="Transport" /> ,是甚麼mode就改甚麼mode,基本上只會有四種mode。
2.<client><endpoiint>的address 把 address 調成與目標Server 相同。
更改WSDL
1.調整參考的WSDL 檔案,調整以下反黃處,這邊是只參考的service端路徑,這邊我是想成別人server分享給我的路徑位址,而要打資料的時候會參考自己手機的和別人分享給我的路徑,這兩個路徑要一樣不然會出錯,而wsdl的路徑也要跟遠端的server路徑一樣。
<wsdl:service name="ReferenceServerName">
<wsdl:port name="ReferenceServerNameSoap" binding="ReferenceServerNameSoap">
<soap:address location="https://192.168.0.XX/test/ReferenceServerName.asmx" />
</wsdl:port>
</wsdl:service>
留言列表