你的位置:睿鑫网络 >> 编程 >> web开发 >> ASP.NET >> 详细内容 在线投稿

ASP.NET跟踪模式详解

排行榜 收藏 打印 发给朋友 举报 来源: 网络   发布者:未知
热度10票  浏览35次 时间:2010年1月15日 10:55
睿鑫网络0jP1a2|M e+u uMl

【摘要】ASP.NET的跟踪功能比ASP有了很大的提高,通过跟踪信息有利于判断WEB应用程序中错误的根源。本文通过实例详细解释了ASP.NET的跟踪模式。睿鑫网络]ci;Y#^5At#^

6tX2_H*ol0【关键字】ASP.NET;跟踪信息;Trace睿鑫网络z8SZ1h6Y] C

睿鑫网络7Rk(NU5_K_2K s{U

1、引言睿鑫网络 X OMzJ5n

a:[N9Js @0m!P)H4^kj0传统ASP最常用的调试方法是使用Response.Write来设置断点,在WEB页面上显示出某些变量当时的值。但是,这种方法存在不少问题。

BxXAD r0 睿鑫网络}3l `i } W2bl

(1)在程序中布满Response.Write语句,这些语句可能反而影响调试,也会影响页面的布局。睿鑫网络sz9wlt h3i$P

睿鑫网络H EhL7sl%h8p%B

(2)调试结束后,还要痛苦地将这些语句删掉。而在删除多余的Response.Write时还要处处小心,防止错删必要的Response.Write语句。如果程序有上百行,工作量之大可想而知。睿鑫网络2l }rkQH-P

睿鑫网络7mcMg-W

ASP.NET推出了允许直接在代码中编写调试语句的新功能,从而在将应用程序部署到生产服务器时,无需将它们从应用程序中移除。该功能叫做跟踪,允许在页中编写变量或结构、断言是否符合某个条件,或只是通过页或应用程序的执行路径进行跟踪。为了收集并显示这些消息和其他跟踪信息,必须启用页或应用程序的跟踪。当启用跟踪时,将发生两件事情:

@a`d;M8`,~'qX0

M}"N3DJr.}-l0(1)ASP.NET将一系列诊断信息表紧接着追加在页输出之后。还将该信息发送到跟踪查看器应用程序(只有当已启用了应用程序的跟踪时)。睿鑫网络1k"Q%S3|R1WBRf

睿鑫网络A:uXUt6B_

(2)ASP.NET在追加性能数据的Trace Information表中显示自定义诊断消息。指定的诊断信息和跟踪消息追加在发送到请求浏览器的页输出中。或者,可以在单独的跟踪查看器(trace.axd)中查看该信息,该查看器显示给定应用程序中每页的跟踪信息。当ASP.NET处理页请求时,该信息可以帮助查清错误或不希望得到的结果。睿鑫网络 | g3EyU+||E

睿鑫网络Y/O9xs/Y CT)SR

只有在启用了跟踪后才处理并显示跟踪语句。可以控制是否将跟踪显示到页上、显示到跟踪查看器或既显示到页上又显示到跟踪查看器。睿鑫网络_M ULf8_E

睿鑫网络 T^ g3[^

2、ASP.NET的跟踪模式的配置

^;T/j[;bA t a0 睿鑫网络^ h GRlc-[!v4m

为了能使用跟踪功能,就要在页面或整个应用程序的范围内启用它。睿鑫网络8ch*?lsEB

q*hInwj1}c02.1 页面级的配置睿鑫网络|9b _;j/P6}5B{

#OBV;ys$u^H9~0要在页面级启用跟踪功能,就要在@Page指令中设置Trace属性。如下所示:

@dEJ(Ta-M0

ynD3W'Zb(o0*******************************************************************************睿鑫网络k R?9R$AS

睿鑫网络/rk @*EH!O~

<%@ Page Language="vb" Trace="true" Codebehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1"%>睿鑫网络 g5fA:S-E AK#I

omP3B*E L6J4N\2|0*******************************************************************************

;p8F0ZrU9Jq1^1uU/~0 睿鑫网络o Aud1_g+G.L6Tp;F

W$q3iP~4T0kZ*y@4B0

4t T^-F{N0图1:跟踪信息睿鑫网络x(C]0EV#yA_SS

Q`_L4\P0如果Trace的属性值为true,那么当页面被显示时将在页面底部显示跟踪信息。而使用TraceMode属性能调整这些信息的显示顺序。TraceMode可选的值有:按照时间顺序排列(SortByTime)和按类别(SortCategory),其中,默认值为按照时间顺序排列。

;z1Q+H/S%RP0

v"k&v4e9P fh02.2 应用程序级的配置睿鑫网络zL'`iea |O3Yv

睿鑫网络_:kU QL&L$F

应用程序级的跟踪功能有多种选择,可以通过在config.web文件中的<system.web>下增加一个XML元素<trace>来设置。

*RJO/_t)NK Q0

zs*N6UnQ0表1:跟踪选项睿鑫网络 U;Z D9E1[!m$S

睿鑫网络'Y9@M,hc Ii|

属性睿鑫网络\4UUxpq

睿鑫网络\(jX}j

说明

9v0TgC@R2w'{,R0 睿鑫网络9\7e,mMF

Enabled睿鑫网络'wqo,I }5k7p

睿鑫网络0jczs E{S#D

如果应用程序中能使用跟踪功能为true,否则为false睿鑫网络(pIKNU7k@

睿鑫网络neD1t+W8r0h

PageOutput

#{%J9],s5M#V0 睿鑫网络2y!] Wi*N EO

如果跟踪信息显示在应用程序的页面上和跟踪窗口中则为true,否则为false。注意:该属性将不影响已启动的跟踪功能页

K|7F Ur HyG0f0 睿鑫网络)|In,FI1E d\:F

RequestLimit睿鑫网络)D rF2A^a5g;Ww#K

;B} X&ujP9z!W+gc0说明服务器所能存放的跟踪请求的最大个数。默认为10个睿鑫网络Z1u3J9gsP+io

睿鑫网络FD,]3au;C8H6P

TraceMode

Df"z8Kj wzJ0 睿鑫网络.n4DC*X~|

指名按某种顺序显示跟踪信息。按SortByTime(时间顺序)或按用户定义类型的SortByCategory(字母顺序)。默认为按时间顺序。睿鑫网络hm V4n]6Cl b:~

"T%S:zVm7F|ZJ0LocalOnly

2KGO7P+D0 睿鑫网络9b+_f0a2KESxY

如果为true,跟踪窗口(trace.axd)只能显示在Web服务器的主机上,否则为false。默认为true。

T,m~#W5g*x oJ/T!J0 睿鑫网络t[Jx ]/xG

*******************************************************************************睿鑫网络~%tYa;T T2X

睿鑫网络?^$f U9h~8` t tTy

<configuration>

t7}^\y5a,`w5G0 睿鑫网络\*o)eUaU

<system.web>睿鑫网络 RP(X7C?L:a!v.|N

M7j2Gm(\Zu;Wu#r0<trace Enabled="true" PageOutPut="false" requestLimit="20" traceMode="SortByTime" localOnly="true"/>睿鑫网络"M}2n-q9{r

[.UNbNZrH3w0

,t#Ln%ni/J(p-kJ0

iYd1_ g!_"M5s0</system.web>

-y| @f2[0

g(NS1S*}GLo0~0</configuration>

W+a3z/K5xD#L^0

Mc0J{t1u1}tuq0*******************************************************************************

u z b| y x0 睿鑫网络b0tX7YuDmU

虽然例子中使用了所有的属性,但是并非每个属性都必须设置。而且页面级的配置将覆盖应用程序级的配置。比如,在应用程序级禁用了跟踪功能,但在页面级又启用这个功能,那么跟踪信息仍会显示在页面上。睿鑫网络S#q6O"I3n ~;a5h

?7^_W_ dDk0RequstLimit属性设置了将被记录的在跟踪日志中的请求的个数,这可以避免日志量过大。如果localOnly属性设为true,那么只在服务器上看到跟踪信息。这使得只有服务器端可以跟踪应用程序,而其他用户却看不到跟踪信息。睿鑫网络%V,V sos

上一篇 下一篇

网络资源