3

カスタムHttpModuleを開発しました。
次に、それをトレースする機能を追加し、標準のASP.NETトレースページ(またはtrace.axd)でトレース結果を確認します。System.Diagnostics.Trace.Write("FILTER TEST");トレース情報の書き込みに使用しようとしています。これは、HttpModuleを除くすべての場所で機能します。web.configにトレースリスナーを追加しましたが、ページのライフサイクル中に書き込まれたトレースのみが表示されます。HttpModuleに書き込んだトレース情報を確認するにはどうすればよいですか?また、この情報をASP.NETトレースページに追加するにはどうすればよいですか?

<trace>
  <listeners>
    <add name="WebPageTraceListener"
         type="System.Web.WebPageTraceListener, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </listeners>
</trace>
4

2 に答える 2

0

System.Web.IisTraceListener を使用しようとしましたか? 参照: http://www.iis.net/learn/develop/runtime-extensibility/how-to-add-tracing-to-iis-managed-modules

于 2013-01-15T18:11:57.093 に答える
0

通常は TraceSource を使用しますが、カスタム HttpModule 内でも問題なく動作します。

あなたに必要なのは :

  • ソースを宣言します (コードで必要な数のソースを使用できます。トレースの粒度に必要なものによって異なります) - (TraceSource の詳細はこちら):

    public class MyModule : IHttpModule
    {
        public static readonly TraceSource MyTraceSource = new TraceSource("MySource", SourceLevels.Off);
    (...)
    }
    
  • ソースがトレースに何かをダンプする必要があるときはいつでも、コード内で TraceEvent を使用します (traceEvent メソッドの詳細については、こちらを参照してください)。

    MyModule.MyTraceSource.TraceEvent(TraceEventType.Information, 0, "Message that'll be dumped in the trace");
    
  • 構成ファイルでは、必要なレベル (情報、警告、エラーなど) で必要な tracesource のみを有効/無効にすることができます。

    <system.diagnostics>
    
        <trace autoflush="true"/>
    
        <sharedListeners>
            <add name="myListener" initializeData="..." type="..."/>
        </sharedListeners>
    
        <sources>
            <source name="MySource" switchName="VerboseSwitch" >
                <listeners>
                    <clear/>
                    <add name="myListener"/>
                </listeners>
            </source>
            <source name="OtherSource" switchName="OffSwitch" >
                <listeners>
                    <clear/>
                    <add name="myListener"/>
                </listeners>
            </source>
        </sources>
    
        <switches>
            <clear/>
            <add name="OffSwitch" value="Off"/>
            <add name="VerboseSwitch" value="Verbose"/>
            <add name="InformationSwitch" value="Information"/>
            <add name="WarningSwitch" value="Warning"/>
            <add name="ErrorSwitch" value="Error"/>
        </switches>
    
    </system.diagnostics>
    

ここでは、トレースに関する非常に優れた記事を見つけることができます: http://www.codeproject.com/Articles/149251/Debugging-Tracing-and-Instrumentation-in-NET-and-A

お役に立てれば !

于 2013-07-25T08:11:58.320 に答える