0

アプリケーションがWCFを使用して大量のデータを送信する理由をデバッグしたいと思います。WCFトレースログを調べてFiddlerでトラフィックを調べようとしましたが、問題のあるクライアントコードにつながるスタックトレースが必要です。

そこで、カスタムをインストールしましたが、インスタンスIClientMessageInspectorを指定して実際のデータのサイズを知るにはどうすればよいですか?指定されたインスタンスMessageのはXMLを返しますが、そのサイズがそれであるかどうかはわかりません。ToString()Message

メッセージの実際の送信にさらに深く、より近くにWCFスタックにフックする方法はありますか?

アップデート

このSOの質問を1歳で見つけましたが、誰も答えませんでした-https://stackoverflow.com/questions/457683/message-size-after-serialize

4

2 に答える 2

1

トレースログについて言及しましたが、メッセージログを有効にしましたか?これを適切に行うと、基になるメッセージを明確に可視化できるはずです。そのため、ネットワーク上にあるデータを正確に確認できるはずです。

于 2010-01-21T12:23:59.660 に答える
0

メッセージ インターセプターを使用できますが、「メッセージの本文は ... 1 回しか消費できない」ことに注意してください ( msdnを参照)。

本質的にMessage.CreateBufferedCopy()は、 ToString() を呼び出してどこかにダンプするなど、好きなように処理するメッセージのコピーを作成するために使用する必要があります。

また、メッセージ インターセプターがチェーンされている場合、元のメッセージが表示されず、前のインターセプターが作成または変更したメッセージが表示される場合があります。

そのため、ネットワーク上にあるものだけを本当に見たい場合は、Marc が既に述べたように、組み込みのWCF トレースを使用したほうがよいでしょう。

于 2010-01-21T14:39:28.067 に答える