コントラクト付きのストリーミング WCF サービスを作成しようとしています
void Send(Message message)
を使用してメッセージを作成します
var requestMessage = Message.CreateMessage(MessageVersion.Default, "operation", new StreamableBodyWriter(inputStream));
where は、入力ストリームをメッセージに書き込むためのStreamableBodyWriter
継承System.ServiceModel.Channels.StreamBodyWriter
とオーバーライドを行います。OnWriteBodyContents
これはMessage
クライアント側では正しく作成されているようですが、サービス側ではメッセージの内容を読み取ることができません。メッセージ本文を調べると、両側で次のようになります。
<s:Body>... stream ...</s:Body>
ただしMessage.IsEmpty
、サービス側ではtrueに設定されています。
サービス側でメッセージ本文からストリームを取得する方法はありますか?