ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【Longkin】ASP.NET应用程序跟踪---在代码里访问跟踪信息(四)

【Longkin】ASP.NET应用程序跟踪---在代码里访问跟踪信息(四)

原创 Linux操作系统 作者:iDotNetSpace 时间:2008-06-02 14:18:02 0 删除 编辑

ASP.NET中HttpContext.Current.Trace跟踪机制是将跟踪消息显示在ASP.NET网页或者写入ASP.NET跟踪查看器中,而System.Diagnostics.Trace类用于将跟踪消息写入标准的.NET Framework跟踪输出(通常是一个控制台窗口)中。但在实际的开发中,有些业务对象没有界面,若要更好地跟踪页面没有界面的业务对象的交互,可以将ASP.NET跟踪输出与System.Diagnostics.Trace跟踪进行集成,以将所有跟踪消息传送到其中的一个输出中,便于查看。

1.将System.Diagnostics.Trace跟踪消息输出到ASP.NET

将System.Diagnostics.Trace跟踪消息输出到ASP.NET,需要设置配置文件如下:

 

   

 

 

   

     

       

     

   

 

在App_Code文件夹下添加一个类TraceTest.cs:

#define TRACE

using System;

public class TraceTest

{

         public TraceTest()

         {

    System.Diagnostics.Trace.WriteLine("Diagnostics跟踪:实例化阶段");

         }

  public void GetTest()

  {

    System.Diagnostics.Trace.WriteLine("Diagnostics跟踪:调用方法阶段");

  }

}

添加一个Web窗体,内容如下:

<%@ Page Language="C#"  Trace="true"%>

  protected void Page_Load(object sender, EventArgs e)

  {

    TraceTest tt = new TraceTest();

    tt.GetTest();

    Trace.Write("HttpContext跟踪消息");

  }

浏览这个Web窗体文件时,可以看到Diagnostics跟踪消息已经输出到页面上了,结果如图15-2所示。

图15-2  将Diagnostics跟踪消息输出到ASP.NET

注意:若要在C#中启用跟踪,请在编译代码时将/d:TRACE标志添加到编译器命令行中,或者可以将#define TRACE添加到文件的顶部。在Visual Basic中,将/d:TRACE=True标志添加到编译器命令行。也可以在配置文件中进行配置编译选项:

   

     

                extension=".cs"

                compilerOptions="/d:TRACE"

                type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="1" />

     

                extension=".vb"

                compilerOptions="/d:Trace=true"

                type="Microsoft.VisualBasic.VBCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

   

 

2.将ASP.NET跟踪消息输出到标准System.Diagnostics.Trace跟踪输出

有时候为了存储的方便,需要将ASP.NET跟踪消息传送到System.Diagnostics.Trace消息的标准输出,它可以是控制台窗口、磁盘、Windows事件日志或任何其他跟踪消息输出。

以下例子就是将ASP.NET跟踪消息输出到Windows事件查看器的“应用程序”里面。

修改配置文件如下:

 

   

 

在Global.asax里的Application_OnStart事件里写:

public void Application_OnStart()

{

  System.Diagnostics.EventLogTraceListener elt = new System.Diagnostics.EventLogTraceListener("ASPNETTrace");

  System.Diagnostics.Trace.Listeners.Add(elt);

}

默认情况下,ASP.NET工作进程的用户令牌是ASPNET(IIS 6.0上是NETWORK SERVICE)。由于该账户不具有创建事件源的正确用户权限,因此,需要手工在注册表的应用程序事件日志下创建一个事件源(用其他方法也可以):

(1)单击“开始”,然后单击“运行”。

(2)在“打开”文本框中,键入regedit,按下回车键。

(3)找到以下注册表子项:HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services "Eventlog"Application。

(4)鼠标右键单击“Application”子项,在弹出的快捷菜单中指向“新建”命令,然后单击“项”。

(5)键入ASPNETTrace作为该项的名称(与Global.asax中EventLogTraceListener事件源名称一致)。

(6)关闭注册表编辑器。

浏览前面的Web窗体文件,然后到Windows事件查看器里面,就可以看到ASP.NET输出的跟踪信息,如图15-3所示。

图15-3  将ASP.NET跟踪信息输出到Diagnostics跟踪标准输出上

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-329641/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5766042