2

私は WCF に関する知識が限られており、WCF を介してバイナリ データを送信することもできないため、この質問はやや初歩的なものになる可能性があります。

BinaryMessageEncodingBindingElementとでのデータ送信の違いを知りたいMtomMessageEncodingBindingElementです。MSDN on Large Data and Streamingからこのページを読んだ後、どのアプローチをいつ使用するかはまだ明確ではありません。

また、ちょっとした質問: 添付ファイル付きのメッセージと MTOM メッセージは同じものですか?

4

1 に答える 1

8

MTOM は、マルチパート MIME でエンコードされたメッセージを使用して、純粋なバイナリとして base64 エンコードするにはサイズが大きくコストがかかりすぎるメッセージの部分を送信する標準です。SOAP メッセージ自体は、メッセージの最初の部分として送信され、WCF などの Web サービス ソフトウェア スタックが引き戻してメッセージの単一表現を作成できるバイナリ部分への参照が含まれています。

バイナリ エンコーディングは完全に WCF 独自のものであり、大きなメッセージだけを処理する必要はありません。これは、XML Infoset のバイナリ表現を提供します。これは、テキスト ベースの形式よりもはるかにコンパクトで、解析が高速です。たまたま大量のデータのバイナリ チャンクを送信している場合は、送信されている他のバイトとちょうど一致します。

ストリーミングは、任意のメッセージ形式で使用できます。それは、データがネットワークを介して書き込まれるときと、ネットワーク トランスポートに提示される前に完全にメモリにバッファリングされるときについてです。小さいメッセージは送信前にバッファリングする方が理にかなっており、大きいメッセージ、特に大きなバイナリ チャンクやストリームを含むメッセージは、ストリーミングが必要になるか、メモリ リソースを使い果たしてしまいます。

于 2011-07-27T14:53:49.377 に答える