MSDNでは、特定のアクションにトレースを割り当てる方法について、articleが見つかりました。これは、Microsoft Service Trace Viewerのトレースログを調べるときに便利です。アクティビティをクリックすると、その特定のアクションで何が起きているのかを確認できるからです。同時スレッドによるアクションのトレース
Guid traceID = Guid.NewGuid();
ts.TraceTransfer(0, "transfer", traceID);
Trace.CorrelationManager.ActivityId = traceID; // Trace is static
ts.TraceEvent(TraceEventType.Start, 0, "Add request");
問題は次のとおりです:
は、ここでは、アクションにいくつかのトレースイベントを割り当てる方法の記事からのコード例だCorrelationManagerは静的であるため、アプリケーション全体に影響を与えます。マルチスレッドアプリケーションではどうしますか? 残念ながら、私は複数の並行活動を達成する方法が見つけられませんでした。 ありがとうございます!
驚くほど簡単:感謝oは – nepa
うーん、それにいくつかの問題がある - 私たちは、MVCアプリケーションでTrace.CorrelationManager.ActivityIdを試してみましたが、我々は複数の並列Web要求を開始するまで、それがうまく働いた - そして、突然に行ってきました時々のActivityID '00000000-0000-0 000-0000-000000000000 'となります。何か壊れているようです。たぶん、私たち自身のActivityIdをHttpContextに格納しなければならないかもしれませんが、それが役立つかどうかはわかりません。 – JustAMartin