このAfterReceiveRequest
方法では、次のようにします。
MessageBuffer buffer = request.CreateBufferedCopy(int.MaxValue);
Message requestCopy = buffer.CreateMessage();
//handle message stuff here
request = newMessage;
buffer.Close();
上記は最後にストリームの位置を残しますか?基本的に私が求めているのは、バッファリングされたコピーを作成すると、リクエストを再度読み取るときに問題が発生するのでしょうか?
これが私がこの状況に到達した方法です。メッセージインスペクターでは、元々バッファリングされたコピーを作成していませんでしたが、エラーメッセージが表示されました。サービスにリクエストを送信した後、オンラインで調査した後、リクエストはすでに読み取られています。メッセージのコピーを作成する必要があることがわかりました。これによって位置やその他の問題が発生しないことを確認したいだけです。
メッセージインスペクターで使用するコピーを作成することで、メッセージを2回読み取っていません。コピーは、ログ記録のために1回読み取られ、refパラメーターに割り当てられると、サービスを呼び出すときに使用されます。 、 正しい?