ASP.NET Trace - Custom HttpModule



我们已经开发了我们的自定义HttpModule。现在我想添加跟踪它的功能,并在标准ASP中查看跟踪结果。. NET跟踪页(或trace.axd)。我尝试用System.Diagnostics.Trace.Write("FILTER TEST");来写跟踪信息。这在除了HttpModule之外的任何地方都有效。我在web中添加了一个跟踪侦听器。配置,但它只显示在页面生命周期中写入的跟踪。我如何看到我在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>

您是否尝试使用System.Web.IisTraceListener?参见:http://www.iis.net/learn/develop/runtime-extensibility/how-to-add-tracing-to-iis-managed-modules

我通常使用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");
    
  • 在你的配置文件中,你可以只在你想要的级别(信息,警告,错误,…)启用/禁用跟踪源

    <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

相关内容

  • 没有找到相关文章

最新更新