我在與Java WS聊天時遇到問題。我使用「wsHttpBinding」綁定與客戶端證書進行身份驗證,消息編碼設置爲「Text」,.net framework爲4.0。服務器端是Java,我無法控制它。連接通過Fiddler進行代理(這是我在線路上看到的請求,比追蹤「System.Net」更方便用戶)。WCF客戶端與Java WS聊天,異常:內容類型application/xop + xml;響應消息的類型=「application/soap + xml」
異常我得到的是以下內容:
內容類型application/XOP + xml的;響應消息的type =「application/soap + xml」與綁定的內容類型(application/soap + xml; charset = utf-8)不匹配。
如果更改消息編碼爲 「MTOM」,則異常的變化:
內容類型application/XOP + xml的;響應消息的type =「application/soap + xml」與綁定的內容類型(multipart/related; type =「application/xop + xml」)不匹配。
服務器正在接受請求的「文本」和「Mtom」消息編碼,並且響應始終是相同的。這是我從服務器獲取原始響應:
HTTP/1.1 200 OK
X-Backside-Transport: OK OK
Connection: Keep-Alive
X-Powered-By: Servlet/3.0
SOAPAction: ""
Content-Type: application/xop+xml; type="application/soap+xml"
Content-Language: en-US
Date: Thu, 25 Jul 2013 13:05:09 GMT
Content-Length: 628
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope ... </env:Envelope>
從中我一直在閱讀的所有文檔,正被返回是介於正常的SOAP消息和MTOM消息之間的響應。我這樣說是因爲我見過的每個示例都說MTOM請求和響應使用MIME作爲通信的信封:常規SOAP消息被封裝在XOP包中,然後這個XOP消息被MIME封裝。即使W3C建議使用MIME作爲XOP包:W3C: XML-binary Optimized Packaging。從這個鏈接摘錄:
Content-Type: Multipart/Related;boundary=...
如果我嘗試使用工具「的soapUI」(用Java編寫的,可從「www.soapui.org」),成功地執行服務調用和響應,沒有任何解析調用Web服務問題。
僅供參考,這是一個來自MSDN WCF forum的交叉帖子,但沒有迴應。
任何想法表示讚賞,謝謝提前,
亞歷
我面臨着完全相同的問題。創建一個自定義綁定並設置messageVersion =「Soap12」不適合我。我可以看到的一個區別是我的Web服務調用是https,但是這個帖子似乎是用於http的。 –
您是否找到解決方案?我有同樣的問題。但是在第一個答案中建議的綁定配置對於web.config無效。 –
HTTP與HTTPS沒有什麼區別:這只是傳輸細節。問題在於消息的格式。我遇到的問題是政府實體正在使用某個Java服務器(使用IBM WebSphere堆棧),而他們的堆棧正在生成不合規的消息。在我的例子中有兩個選項:1.)使用SoapUI作爲外部應用程序,它將下載消息,然後在C#2中解析XML。)編輯通過網絡傳輸的原始XML並更改消息XML以符合標準 - > this方式一切都是用C#完成的。 – alemarko