2

WindowsStoreAppsで次のプログラムを作成しました。

CustomBinding b = new CustomBinding() ;
TextMessageEncodingBindingElement t = new TextMessageEncodingBindingElement();
HttpTransportBindingElement h = new HttpTransportBindingElement();          
b.Elements.Add(t);
b.Elements.Add(h);

MyService client = new MyService(b, new EndpointAddress("http://localhost:8080/"));

var request = ...;
var response = client.Service000(request);

Service000では、要求メッセージはUtf-8エンコーディングですが、応答メッセージは次のようにMtomエンコーディングです。

mime-version: 1.0
Content-Type: Multipart/Related;
boundary=4aa7d814-adc1-47a2-8e1c-07585b9892a4;
type=application/xop+xml;
start=”<14629f74-2047-436c-8046-5cac76d280fc@uuid>”;
startinfo=”application/soap+xml”

--4aa7d814-adc1-47a2-8e1c-07585b9892a4
Content-Type: application/xop+xml; type="application/soap+xml"
                charset=UTF-8
Content-Transfer-Encoding: binary
Content-ID: <14629f74-2047-436c-8046-5cac76d280fc@uuid>

<soap:Envelope>
....
</soap:Envelope>

--4aa7d814-adc1-47a2-8e1c-07585b9892a4
Content-Type: image/jpeg;
Content-Transfer-Encoding: binary
Content-ID: <1c696bd7-005a-48d9-9ee9-9adca11f8892@uuid>

Binary Scan Data
--4aa7d814-adc1-47a2-8e1c-07585b9892a4--

MtomMwssageEncodeingBindingElementで応答メッセージを処理したい。ただし、WinRTはMtomMwssageEncodeingBindingElementをサポートしていません。Mtom Encondingメッセージを処理する方法はありますか?

4

1 に答える 1

0

簡単ではありません。お気づきのとおり、MTOMメッセージエンコーディングはWinRT .NETサブセットでサポートされていないため、使用できません。サービスを制御する場合は、WinRTでサポートされているバインディング(などBasicHttpBinding)を使用して新しいエンドポイントを追加することを検討する必要があります。そうでない場合は、MTOMメッセージの解析方法を知っているカスタムエンコーダーを作成する必要がありますが、これは簡単な作業ではありません。

于 2012-11-03T18:25:15.977 に答える