在Global.asax中使用Trace

时间:2011-11-11 06:22:10

标签: asp.net trace global-asax

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

我添加了WebPageTraceListenerTextWriterTraceListener,但我所看到的只是您在跟踪中看到的正常页面事件。

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

1 个答案:

答案 0 :(得分:5)

您是否使用TRACE开关进行编译或更新web.config以自动执行此操作?

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

  

尽管只要启用了跟踪,ASP.NET就会显示跟踪消息   对于页面,System.Diagnostics跟踪消息仅在时写入   跟踪消息所在的代码是使用a编译的   显式编译器开关 - TRACE开关。换句话说,如果你这样做   你没有使用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>