Java WS との通信に問題があります。認証にクライアント証明書を使用した「wsHttpBinding」バインディングを使用しています。メッセージ エンコーディングは「テキスト」に設定され、.net フレームワークは 4.0 です。サーバー側はJavaであり、私はそれを制御できません。接続は Fiddler を介してプロキシされています (これは、「System.Net」をトレースするよりもはるかにユーザーフレンドリーな、ネットワーク上の要求を確認する方法です)。
私が得る例外は次のとおりです。
コンテンツ タイプ 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 勧告でさえ、XOP パッケージに MIME を使用しています: W3C: XML-binary Optimized Packaging。このリンクからの抜粋:
Content-Type: Multipart/Related;boundary=...
ツール「soapUI」(Java で記述され、「www.soapui.org」から入手可能) を使用して Web サービスを呼び出してみると、サービス呼び出しは正常に実行され、応答は問題なく解析されます。
参考までに、これはMSDN WCF フォーラムからのクロスポストですが、まだ応答はありません。
どんなアイデアでも大歓迎です、事前に感謝します、
アレックス