0

HTTPS エンドポイントを備えた自己ホスト型の WCF 4.0 サービスがあります。メッセージの受信後にトレース情報を書き込むメソッドがあります。ただし、一部のメッセージのサイズは 400k であるため、WCF がそれを取得してからコンソール アプリがそれを取得するまでに長い待ち時間がかかると考えられます。少なくともメッセージがいつ最初に着信するかを知ることができるように、そこにフックまたは傍受レイヤーを取得するにはどうすればよいですか?

これに関連するWCFパフォーマンスカウンターがあると思うので、知る方法があるはずです...

すべてのアイデアをありがとう!

これはDetect WCF client open channel operationとは異なります。これは、HTTP トラフィックが最初に着信するタイミングを知ることに関するものです。おそらく、WCF サービスで監視する必要があるということではなく、他の WCF レイヤーを監視する必要があるかもしれません。 HTTP をインターセプトします。誰でも言えますか?

4

2 に答える 2

0

1つのオプションは、AfterReceiveRequestメソッドのオーバーライドでメッセージサイズチェックコードを使用して、サービスのIDispatchMessageInspectorインターフェイスを実装することです。コードは、このブログ投稿のコードのようになります。

于 2011-05-09T19:33:39.497 に答える
0

MessageEncoderデフォルトの実装を単純にラップするが、ラップされた実装 (インスタンスを作成する) を呼び出す前にReadMessage()いくつかの情報をオーバーライドしてログに記録するカスタムを作成するのはどうですか? この段階では、完全なメッセージはネットワーク経由で完全にストリーミングされていないため、処理パイプラインの非常に初期の段階です。ただし、明らかに、メッセージについてはまだ何も知りません。しかし、タイムスタンプを取得したい場合は、それを取得するのに便利な場所かもしれません。Message

于 2011-05-09T19:28:28.787 に答える