2011-11-11 38 views
5

Tôi đang cố gắng để xuất các thư được viết qua Trace.WriteLine trong Global.asax, chúng không xuất hiện trong Trace.axd.Sử dụng dấu vết trong Global.asax

Tôi đã thêm WebPageTraceListenerTextWriterTraceListener làm tài liệu here nhưng tất cả những gì tôi thấy là các sự kiện trang bình thường bạn sẽ thấy trong một dấu vết được mong đợi.

Tôi có thiếu một bước để nhận thông báo theo dõi được ghi trong Global.asax vào nhật ký tệp/theo dõi không? Tôi đang thực hiện một số đăng nhập trong sự kiện Application_AuthenticateRequest.

Trả lời

5

Bạn đã biên dịch bằng cách sử dụng công tắc TRACE hoặc cập nhật web.config của bạn để tự động làm như vậy?

Từ trang MSDN bạn liên kết với (tôi nhấn mạnh):

Mặc dù ASP.NET màn hình theo dõi các thông điệp bất cứ khi nào truy tìm được kích hoạt cho một trang, System.Diagnostics theo dõi các thông điệp được viết chỉ khi sự mã trong đó thông điệp dấu vết được lưu trữ được biên dịch bằng cách sử dụng công tắc trình biên dịch rõ ràng — công tắc TRACE. Nói cách khác, nếu bạn làm không biên soạn một cách rõ ràng AuthorClass bằng cách sử dụng công tắc TRACE, bạn sẽ không thấy thông báo theo dõi, ngay cả với số WebPageTraceListener được thêm vào.

Bạn có thể định cấu hình ứng dụng của mình để tự động biên dịch bằng cách sử dụng công tắc TRACE, bằng cách thêm phần mới vào tệp Web.config của bạn.

Đây là entry Web.config đó phải được đặt sau phần <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

tôi đã thực hiện những thay đổi nêu trên vào tập tin web.config của tôi. Tuy nhiên trace.axd vẫn không hiển thị thông tin dấu vết mà tôi đã thêm vào sự kiện global.asax.cs => Application_Start của mình. –

Các vấn đề liên quan