さまざまな一般的な理由から、ASP.NET アプリケーションでトレースを使用したいと考えました。特に、強力な方法でトレースを調べることができるService Trace Viewerツールを使用できる可能性があることを知って以来.
私はこれまでこの痕跡を使ったことがなかったので、勉強を始めました。Google、SO、および MSDN をしばらく使用した後、ようやく物事がどのように機能するかについての良いアイデアが得られました。しかし、私はまた、非常に気がかりなことを1つ見つけました。
ASP.NET アプリケーションでトレースを使用する場合、Web 要求によってトレース メッセージをグループ化することは非常に理にかなっています。特に私がそれを使いたい理由の 1 つは、パフォーマンスの問題を研究するためです。上記のツール<Corrleation>
は、生成された XML ファイルでタグを使用することにより、これもサポートします。これは から来ていSystem.Diagnostics.Trace.CorrelationManager
ます。また、アクティビティの開始/停止などの他の優れた機能も使用できます。これにより、トレース メッセージをより適切にグループ化できます。かっこいいでしょ?
私もそう思っていましたが、CorrelationManager
実際に住んでいた場所を調べ始めるまでは。結局のところ、それは静的プロパティでした。Reflector をいじってみたところ、恐ろしいことがわかりましたCallContext
。ASP.NET で使用してはいけないものはどれですか?
それで...ここで何か足りないのですか?ASP.NET のトレースには本当に根本的な欠陥がありますか?
追加:うーん、私はこの内容を自分で書き直そうとしているところです。痕跡を探索するためにきちんとしたツールを使いたいと思っています。これをしてはいけない理由はありますか?おそらく、まだ何か良いものがありますか?すぐに答えが得られたら本当にいいですね。:)
追加 2:私の同僚は、これが単なる理論上の問題ではないことを確認しました。彼は、彼が取り組んでいるシステムでこれを観察しました。それで解決です。私は自分のやりたいように物事を行う新しい小さなシステムを構築するつもりです。:)
追加 3:うわー、すごい... Microsoft の担当者は、ASP.NET で Correlation Manager を使用することに何の問題も見つけられませんでした。結局、どうやらこのバグの修正は得られていないようです...