本番環境でのみ発生するパフォーマンスの問題を追跡しようとすると、アプリケーション内でトレースを有効にしているため、メソッド呼び出しとページ読み込み時間が表示されます。Trace.axdのデータをtext/xmlファイルに記録する
これはうまくいっており、問題を追跡するのに役立つ多くの情報があります。ただし、この情報を表示する唯一の方法は、Trace.axdを参照し、各要求を個別に表示することです。
この方法で最初のX要求を追跡することも可能であり、Xには最大10,000個の制限があります。
このトレース情報をファイルまたはデータベースに送る方法はありますか?私はこれがSystem.Diagnostics
を使用して行うことができると信じていますが、私は多くの運がないです。
私はこれのようなトレース項目のタイムスタンプとデータを含むXMLファイルになり
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="XmlWriterTraceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\trace.xml"
/>
</listeners>
</trace>
</system.diagnostics>
を使用してXmlWriterTraceListener
使用して試してみました
<trace enabled="true" writeToDiagnosticsTrace="true" />
使用してトレースを有効にしている「のロードを開始します"、" End Load "など。
ただし、単一の要求を記録するように見え、すべての要求は記録されません。さらに、ロード時間は便利ですが、理想的には、リクエストデータ、ポストデータ、セッションデータなど、Trace.axdで見ることができるすべての情報を利用したいと考えています。
これはですか?メジャーコードを変更しなくても可能ですか?理想的には、web.configの変更だけを使用してこれを有効にしたいと思います。
また、私はRedGateやEquatecのプロファイリングツールなどの他のアプリケーションも検討しましたが、まず非侵襲的なトレースオプションを使いたいと思います。
アプリケーションはASP.Net 3.5とC#で書かれています。
+1、私はこれが好きで、私たちのアプリでうまく実装するかもしれません。しかし、私が後にしたことの1つは、ポストとセッションのデータを含めて、リクエストに関する可能な限り多くの情報でした。特定のページが遅いことがわかりましたが、問題の原因となっているアクションを実行しているユーザーがいます。現在のところ、どんな情報が役に立つのかわからないので、パターンを見つけるためにすべての情報を見たいと思っています。 –
私は使用しているダンプコードを添付しました。私は通常、警告/エラーごとにhtmlファイルを作成します。 – djeeg