2011-11-11 46 views
5

我很努力地輸出通過Global.asax中的Trace.WriteLine寫入的消息,它們不會出現在Trace.axd中。在Global.asax中使用跟蹤

我已經添加了WebPageTraceListenerTextWriterTraceListener,如here所記錄的,但我所看到的只是您在預期的跟蹤中看到的正常頁面事件。

我錯過了一個步驟,以獲取寫入Global.asax到文件/跟蹤日誌的跟蹤消息嗎?我在Application_AuthenticateRequest事件中做了一些日誌記錄。

回答

5

您是否使用TRACE開關編譯或更新web.config自動執行?

從您鏈接到(重點煤礦)的MSDN頁:

雖然ASP.NET顯示跟蹤時啓用跟蹤 的頁面信息,System.Diagnostics程序跟蹤消息寫到只有當 的使用 顯式編譯器開關(TRACE開關)編譯跟蹤消息所在的代碼。換句話說,如果 確實沒有使用TRACE開關明確編譯AuthorClass,那麼即使添加了WebPageTraceListener ,您的 也不會看到跟蹤消息。

您可以將應用程序配置爲使用 TRACE開關自動編譯,方法是在Web.config文件中添加一個新節。

這是在Web.config條目應放置在<system.diagnostics>節之後:

<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> 
+0

我做了上面提到的我的web.config文件中的變化。但是,trace.axd仍然不會顯示我在global.asax.cs => Application_Start事件中添加的跟蹤信息。 –