监视你的应用
ASP.NET 2.0提供了一系列函数用以处理网
站的各种问题,包括对网站性能的监视和
对网站开发过程中错误现象的追踪。这些
特性包括
.. ASP.NET的Trace
.. 可定制的Trace信息(Error Handing)
.. Web事件记录(web event)
ASP.NET的追踪机制贯穿于页面执行周期,
并且可以捕获各种页面提交信息的细节,
也可以根据这些捕获的信息提供用户需要
的相应信息。
可以输出到页面,也可以写到缓存里
部署要记得关闭应用信息,不然会暴露所有信息
WebEvent是一套非常有效的网页监控管理
模型。通过这套模型,ASP.NET的开发者
可以方便的监视各种网页的事件
可以记录所有信息,可以将错误存储在任一位置
当我们开发一个应用的时候,经常需要在网页内
插入一个断点,用来输出一些信息,例如一些结
构的数值,或者断言某件事情一定发生,或者干
脆只是想看看程序执行的路径。Asp.net提供了两
种结构用以追踪程序。
. 页面级追踪
. 应用级追踪
<% page trace="true"%> --页面级Trace
追踪信息的显示可以通过两种类型,一种是按发生
时间先后顺序显示,一种是按照发生的种类显示。
通过配置参数tracemode来实现,当配置为
sortbytime的时候,就会按照时间顺序显示,如果
是sortbycategory就会按照种类显示。
在页面中同样可以通过通过内建属性Trace来实现
对页面的信息输出。
. Trace.write属性和Trace.warm属性都可以在页面
输出信息,两者从输出信息的角度说是完全一致
的只是Trace.warm属性输出的信息是红色的。
C#:
Trace.Write("");
Trace.Warm("");
<system.web>
<trace enabled="true"/>
</system.web>
在所有页面启用Trace,可在http://localhost/工程/Trace.axd
里查看所有页面的Trace.
应用追踪打开整个程序的所有页面追踪,
并且提供在一个页面内显示多个追踪结果
信息的功能。它的访问方式很特殊,通过
特殊的Url实现(Trace.axd)
应用级的追踪
. <configuration>
. <system.web>
. <trace enabled="true"
traceMode="SortByCategory"
requestLimit="40"
. pageOutput="false"
. localOnly="true" />
. </system.web>
. </configuration>
在asp.net中,一个错误的发生有4种可能。
. 配置错误、语法错误、编译错误、运行时
错误
. 在默认状态下,出错之报告出错的堆栈位
置。只要开启了debug模式,也就是写下
. <%@page Debug=“true”%>的时候,才显
示出错的具体位置。
. 也可以通过配置web.config来实现debug的
开启
asp.net追踪是基于web的追踪,比较耗性能.功能比较大.
ASP.NET支持非常完善的出错页面定制机制,可
以让本地用户和远程用户对出错显示不同的信息,
也可以完全屏蔽掉出错信息。
. <configuration> <system.web> <customErrors
defaultRedirect="genericerror.htm"
mode="RemoteOnly" /> </system.web>
</configuration>
出错是自动跳转到"genericerror.htm"页面,可以给用户有好提示.
根据不同的网络访地址,看到不同的错误提示.
除去定制跳转页面之外,asp.net还支持针对不同的错误类型提
供相应的处理。
. <configuration>
. <system.web>
. <customErrors mode="RemoteOnly"
defaultRedirect="/genericerror.htm">
. <error statusCode="500" redirect="/error/callsupport.htm"/>
. <error statusCode="404" redirect="/error/notfound.aspx"/>
. <error statusCode="403" redirect="/error/noaccess.aspx"/>
. </customErrors>
. </system.web>
. </configuration>
在每个页面中都有一个内在的页面出错处
理函数Page_Error。可以通过编写自己的
函数处理这些错误。
Page_Error---页面出错事件
Trace_Finished ---trace完成
Sever.getError()
Web事件提供了一套监视系统,通过这套
系统可以方便的监视网站的运行状况。针
对事件,管理员可以定制几种常见的处理
方法(webEvent)
把事件记录到sql server数据库、通过email
分发事件信息、写入windows事件日值通过
日值分析事件、通过wmi处理事件
Web事件都是从一些基础的web事件类中集
成而来的。这些事件是
. WebBaseEvent、---事件的基本类
WebManagementEvent、
WebHeartBeatEvent、---双服务器心跳线
WebAuditEvent、
WebRequestEvent、 ---请求事件,
WebErrorEvent
所有信息记录在:aspnetdb.mdf数据库里.
aspnet_webEvent_Events
通过webServices可以跨平台操作.
web 2.0是一种技术规范并不是一种技术.
objectdatasource适合多层架构,sqldatasource适用于单层架构.
盗源问题不好解决,目前只要能看到页面内容就可以看到部分源码.