2

multipart/related結果を次のように返すWebサービスがあります。

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_FCAC227A0F1D534C2D1349803588825;
type="application/soap+xml"; start="<0.urn:uuid:FCAC227A0F1D534C2D1349803588826@apache.org>"; action="urn:MyServiceAction"
Date: Tue, 09 Oct 2012 17:26:28 GMT
Content-Length: 2961

--MIMEBoundaryurn_uuid_FCAC227A0F1D534C2D1349803588825
Content-Type: application/soap+xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-ID: <0.urn:uuid:FCAC227A0F1D534C2D1349803588826@apache.org>

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
[... snipped ...]
</soapenv:Envelope>
--MIMEBoundaryurn_uuid_FCAC227A0F1D534C2D1349803588825--

WCFはそれをサポートしていないようです。カスタムバインディングを使用してTextMessageEncodingBindingElementいますが、コンテンツタイプがサポートされていないことを通知するメッセージが表示されます。MtomMessageEncodingBindingElement期待していないので文句も言うapplication/soap+xmlけどapplication/xop+xml

適切に処理できるMessageEncoderはありmultipart/relatedますapplication/soap+xmlか?または、パイプラインにフックして、ペイロードが送信される前にペイロードを抽出する簡単な方法はありTextMessageEncodingBindingElementますか?

4

1 に答える 1

3

SOAPとMIMEを組み合わせるための標準であるSOAPWithAttachments(SwA、http://en.wikipedia.org/wiki/SOAP_with_Attachments)があります。これが使用しているものである場合は、ここにカスタムエンコーダーがあります:http : //wcfswaencoder.codeplex.com/ SwAでなくても、カスタムエンコーダーコードが出発点として適している場合があります。

于 2012-10-09T22:24:38.277 に答える