【Asp.net精品源码栏目提醒】:网学会员鉴于大家对Asp.net精品源码十分关注,论文会员在此为大家搜集整理了“(1)将 ASP.NET 跟踪与 System.Diagnostics 跟 - 其它资料”一文,供大家参考学习
演练:将
ASP.NET 跟踪与 System.Diagnostics 跟踪集成在本演练中,您将创建 Default.aspx 网页、一个 AuthorClass 业务对象及本演练后面涉及跟踪的步骤所需的 Authors.xml XML 数据文件。
可以将源代码复制并粘贴到
ASP.NET 目录中的文件内。
这样可创建 Default.aspx 网页、 AuthorClass 业务对象和 Authors.xml文件。
创建 Default.aspx 页 1. 打开文本编辑器(如记事本),并创建一个新文件。
2. 在该文件中输入以下代码。
Visual Basic 复制代码 C 复制代码 3. 将该文件作为 Default.aspx 保存在
ASP.NET 应用程序根目录中。
Default.aspx 页使用一个名为 AuthorClass 的业务对象与 XML 数据交互。
创建 AuthorClass 业务对象 1. 在应用程序根目录下,创建一个名为 App_Code 的目录。
2. 在文本编辑器(如记事本)中,打开一个新文件。
3. 在该文件中输入以下代码。
Visual Basic 复制代码 Imports Microsoft.VisualBasic Imports System Imports System.Web Imports System.Data Namespace PubsClasses Public Class AuthorClass Private dsAuthors As DataSet _ New System.Data.DataSetds1 Private filePath As String _ HttpContext.Current.Server.MapPath/App_Data/authors.xml Public Sub New dsAuthors.ReadXmlfilePath Data.XmlReadMode.ReadSchema End Sub Public Function GetAuthors As DataSet Return dsAuthors End Function End Class End Namespace C 复制代码 using System using System.Web using System.Data namespace PubsClasses public class AuthorClass private DataSet dsAuthors new DataSetds1 private String filePath HttpContext.Current.Server.MapPath/App_Data/authors.xml public AuthorClass dsAuthors.ReadXml filePath XmlReadMode.ReadSchema public DataSet GetAuthors return dsAuthors 4. 在 App_Code 目录中,将该文件保存为 AuthorClass.cs(对于 C)或 AuthorClass.vb(对于 Microsoft Visual Basic)。
AuthorClass 使用的数据文件为 Authors.xml。
启用跟踪并显示
ASP.NET 跟踪消息 1. 在应用程序根目录下,创建一个名为 App_Data 的目录。
2. 在文本编辑器(如记事本)中,打开一个新文件。
3. 在该文件中输入以下 XML 数据。
XML 文件包含标识数据的数据库结构的架构信息。
这包括对键的主键约束。
注意 业务组件可以使用适合应用程序的任何方式来使用数据。
为方便起见,本演练使用了一个 XML 文件。
复制代码 172-32-1176 White Gerry 408 496-7223 213-46-8915 Green Marjorie 415 986-7020 4. 在 App_Data 目录中,将该文件保存为 Authors.xml,然后关闭该文件。
将跟踪消息添加到网页和业务对象创建了 Default.aspx 页、Authors.xml 数据文件和 AuthorClass 业务对象后,就可以开始使用跟踪。
在将任意跟踪消息添加到代码之前,先为 Default.aspx 页启用跟踪。
启用跟踪并显示
ASP.NET 跟踪消息 1. 在文本编辑器(如记事本)中,打开 Default.aspx 页。
2. 将一个 Trace 属性添加到 Page 指令中,然后将 Trace 设置为 true。
该声明为该网页启用
ASP.NET 跟踪。
有关更多信息,请参见如何:启用
ASP.NET 页跟踪。
现在已启用页跟踪,而且当您在 Web 浏览器中查看该页时,就会看到 GridView 控件后跟有跟踪输出。
所显示的第二个跟踪表“跟踪信息”显示有关网页的执行路径的详细信息。
有关如何读取跟踪输出的更多信息,请参见读取
ASP.NET 跟踪信息主题。
写入跟踪消息若要更好地了解某些
ASP.NET 基本操作(如 Default.aspx 页中的 GridView 控件所执行的数据绑定)出现的位置,请将跟踪消息添加到该网页和 AuthorClass 业务对象中。
从 Web 窗体中写入跟踪消息 在 Default.aspx 网页中,在 Page 指令之后但在 标记之前输入以下代码。
Visual Basic 复制代码 C 复制代码 注意 可能必须在 Page 指令中提供一个语言属性,具体取决于您使用的语言。
这些跟踪消息将写入
ASP.NET 跟踪输出中,当您再次查看 Default.aspx 页时,即可在“Begin Load”和“End Load”之间的“跟踪信息”节中看到这些跟踪消息。
“Begin Load”和“End Load”与 Page_Load 方法相关联。
现在,要将跟踪消息添加到业务对象 AuthorClass 中。
将跟踪消息写入 AuthorClass 业务对象中 1. 在 AuthorClass 构造函数中输入以下代码。
Visual Basic 复制代码 System.Diagnostics.Trace.WriteAuthorClass is created. AUTHORCLASS TRACE C 复制代码 System.Diagnostics.Trace.WriteAuthorClass is created. AUTHORCLASS TRACE 2. 在 AuthorClass.GetAuthors 方法中输入以下代码。
Visual Basic 复制代码 System.Diagnostics.Trace.WriteGetAuthors called.AUTHORCLASS TRACE C 复制代码 System.Diagnostics.Trace.WriteGetAuthors called.AUTHORCLASS TRACE 注意 如果使用
ASP.NET System.Web.TraceContext.Write 方法,则在该方法的参数列表中,跟踪类别出现在跟踪消息之前。
但如果 使用 .NET Framework Write 跟踪方法,则跟踪消息出现在跟踪类别之前。
如果编译带有 TRACE 编译器选项的业务对象,则这些跟踪消息将写入系统跟踪输出中。
这些跟踪消息不像
ASP.NET 跟踪消息一样写入 Default.aspx 页中。
若要测试这一点,请查看 Default.aspx 页,并验证前面所看到的“跟踪信息”表中是否只显示同样的“
ASP.NET跟踪”消息。
在下一节中,您将学习如何配置
ASP.NET Web 应用程序以在启用 TRACE 选项的情况下自动进行编译并将所有跟踪消息都传送到网页中。
将所有跟踪输出传送到 Web 窗体中通过将 AuthorClass 业务对象中包含的 Trace 消息传送到
ASP.NET 跟踪输出,可以显示在处理请求期间何时创建和操作AuthorClass,并使您可以更全面地查看应用程序的执行情况。
若要将 Trace 消息传送到
ASP.NET 网页,必须添加一个WebPageTraceListener 对象。
可以通过配置(推荐)或以编程方式添加跟踪侦听器。
有关通过配置来添加跟踪侦听器的更多信息,请参见 - 元素。
在下面的过程中,将需要一个 Web.config 文件。
如果已有 Web.config 文件,则跳过下面的过程并转到再后面的过程,在该过程中将添加一个 WebPageTraceListener 对象。
创建 Web.config 文件 1. 打开文本编辑器(如记事本),并创建一个新文件。
2. 在该文件中输入以下文本。
复制代码 3. 将该文件作为 Web.config 保存在 Default.aspx 所在的同一目录中。
然后,将 WebPageTraceListener 对象添加到应用程序中,以将 Trace 消息传送到
ASP.NET 跟踪输出中。
通过配置向应用程序添加 WebPageTraceListener 1. 打开应用程序的 Web.config 文件。
2. 将以下代码放入 Web.config 文件中的 节之后。
复制代码 该配置节会将一个 WebPageTraceListener 对象添加到应用程序的跟踪侦听器集合中。
使用应用程序的配置文件添加 WebPageTraceListener 是添加跟踪侦听器的推荐方法。
不过,也可以以编程方式添加跟踪侦听器。
在使用复杂的跟踪逻辑和不同类型的跟踪侦听器跟踪应用程序并且 WebPageTraceListener 只是众多跟踪侦听器类型中的一种时,这种方法尤为有用。
若要以编程方式将跟踪侦听器添加到应用程序,请按照下列步骤操作创建一个 Global.asax 文件并添加侦听器。
以编程方式创建 Global.asax 文件并添加跟踪侦听器 1. 打开文本编辑器(如记事本),并创建一个新文件。
2. 在该文件中输入以下代码。
Visual Basic 复制代码 C 复制代码 3. 在应用程序根目录中,将该文件保存为 Global.asax。
这将创建一个基本的 Global.asax 文件,该文件是一个编译好的模块,其中包含无论应用程序在何时启动或停止都会运行的代码。
4. 在 Global.asax 文件的 Application_Start 方法中输入以下代码。
Visual Basic 复制代码 Create a trace listener for Web forms. Dim gbTraceListener As New WebPageTraceListener Add the event log trace listener to the collection. System.Diagnostics.Trace.Listeners.AddgbTraceListener C 复制代码 // Create a trace listener for Web forms. WebPageTraceListener gbTraceListener new WebPageTraceListener // Add the event log trace listener to the collection. System.Diagnostics.Trace.Listeners.AddgbTraceListener 这将以编程方式将一个 WebPageTraceListener 添加到应用程序的跟踪侦听器集合中。
5. 在 Default.aspx 所在的同一目录中,将该文件保存为 Global.aspx。
通过上述这些步骤,您已将 WebPageTraceListener 添加到应用程序的跟踪侦听器集合中。
尽管每当启用页跟踪时
ASP.NET 就会显示跟踪消息,但只有在使用显式编译器开关(即 TRACE 开关)编译了跟踪消息所在的代码的情况下,才能写入System.Diagnostics 跟踪消息。
换句话说,如果未使用 TRACE 开关显式编译 AuthorClass,则看不到这些跟踪消息,即使添加了 WebPageTraceListener 也是如此。
通过向 Web.config 文件中添加一个新节,可以将应用程序配置为自动使用 TRACE 开关进行编译。
在自动启用跟踪的情况下编译应用程序 1. 打开应用程序的 Web.config 文件。
2. 将以下代码放入 Web.config 文件中的 节之后。
复制代码 默认情况下,此配置节使应用程序使用 TRACE 选项编译所有模块。
如果现在查看 Default.aspx 页,将会同时看到
ASP.NET 和 System.Diagnostics 跟踪消息。
如果未出现
ASP.NET 和System.Diagnostics 跟踪消息,则可能必须重新编译 AuthorClass 对象。
从跟踪信息中,可以了解到在该网页生存周期的 PreRender 方法期间,创建了 AuthorClass 对象并调用了其 GetAuthors 方法。
还可以了解到在创建 AuthorClass 对象时存在很大的时间滞后;在“开始 PreRender”消息和“已创建 AuthorClass。
”消息之间存在很大的时间差。
这是因为 AuthorClass 在创建期间打开了 Authors.xml 文件并初始化了其 DataSet,这一操作是开销相对较大的操作。
在下一节中,您将学习如何配置
ASP.NET Web 应用程序以将所有跟踪消息传送到 .NET Framework 跟踪输出。
将所有跟踪输出传送到 .NET Framework 跟踪您可能希望将
ASP.NET 跟踪消息传送到 Trace 消息的标准输出,它可以是控制台窗口、磁盘、Windows 事件日志或任何其他跟踪消息输出。
在 Web.config 配置文件中可以启用此消息传送功能。
将所有
ASP.NET 跟踪消息传送到系统跟踪输出 1. 打开应用程序的 Web.config 文件。
2. 将一个新属性 writeToDiagnosticsTrace 添加到 下的跟踪元素,然后将 writeToDiagnosticsTrace 设置为 true。
复制代码 此配置属性指示
ASP.NET 跟踪将
ASP.NET 跟踪消息传送到标准的系统跟踪输出机制。
若要在
ASP.NET 页外部的上下文中查看
ASP.NET 和 System.Diagnostics 跟踪消息,请使用 TextWriterTraceListener 对象将这些跟踪消息写入一个文件中。
必须将 TextWriterTraceListener 对象配置为写入特定的文件。
通过使用 - - 元素 的 initializeData 属性可以执行此操作。
3. 按照本演练前面“将所有跟踪输出传送到 Web 窗体”的第二个过程中添加 WebPageTraceListener 对象的相同步骤操作, 将一个 TextWriterTraceListener 对象添加到 Web.config 文件中,然后将 TextWriterTraceListener 配置为写入应 用程序根目录中名为 Asptesttrace.log 的文件内。
如果假定未在 Global.asax 文件中以编程方式添加 WebPageTraceListener,则 Web.config 文件的 节将如下所示: 复制代码 注意 上一步中的 initializeData 属性有一个对应于
ASP.NET 应用程序根目录的占位符值。
如果尝试将跟踪消息写入应用程序根目录 之外的文件,就可能会收到安全异常。
默认情况下,
ASP.NET 不允许将文件写入应用程序根目录之外的磁盘位置,如 C:。
此外, 还可能必须向
ASP.NET 辅助进程帐户授予对跟踪日志的写权限。
默认情况下,必须等待填充跟踪缓冲区后,才能将跟踪数据写入目标流。
4. 若要在请求
ASP.NET 页后立即查看跟踪日志中的跟踪数据,请在每次写入跟踪时刷新该缓冲区,方法是将 autoflush 属性 设置为 true,就像前面步骤那样。
autoflush 属性的默认值为 false。
5. 若要以编程方式刷新跟踪信息的缓冲区,请调用 Flush 方法。
注意 对于在本演练中开发的业务对象,如果在 Page_Load 方法中调用 Flush 方法并且 autoflush 属性为 false,则跟踪日志将 不会显示跟踪数据,因为业务对象在页的 Load 事件发生后呈现。
上一篇:
【精品】30题总结C#所有知识
下一篇:
企业管理论文:电力企业管理中的绩效考核工作