在Global.asax中使用Trace

Nae*_*raz 5 asp.net trace global-asax

我很难输出通过Global.asax中的Trace.WriteLine写入的消息,它们不会出现在Trace.axd中.

我在这里添加了一个WebPageTraceListener和一个TextWriterTraceListener文档,但我看到的只是你在跟踪中看到的正常页面事件.

我是否错过了一个步骤,以便将Global.asax中写入的跟踪消息写入文件/跟踪日志?我正在做一些记录Application_AuthenticateRequest事件.

Ahm*_*eed 5

您是否使用TRACE交换机编译或更新web.config自动执行此操作?

从您链接到的MSDN页面(强调我的):

尽管只要为页面启用了跟踪,ASP.NET就会显示跟踪消息,但只有在使用显式编译器开关(TRACE开关)编译跟踪消息所在的代码时,才会写入System.Diagnostics跟踪消息.换句话说,如果您没有使用TRACE开关显式编译AuthorClass,即使WebPageTraceListener 添加了跟踪消息,也不会看到跟踪消息.

您可以使用TRACE开关将应用程序配置为自动编译,方法是在Web.config文件中添加新的部分.

这是应该放在以下<system.diagnostics>部分之后的Web.config条目:

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" 
              extension=".cs" 
              compilerOptions="/d:TRACE"
              type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="1" />
    <compiler language="VB"
              extension=".vb" 
              compilerOptions="/d:Trace=true"
              type="Microsoft.VisualBasic.VBCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </compilers>
</system.codedom>
Run Code Online (Sandbox Code Playgroud)