使用与错误处理提高程序稳定性.ppt_第1页
使用与错误处理提高程序稳定性.ppt_第2页
使用与错误处理提高程序稳定性.ppt_第3页
使用与错误处理提高程序稳定性.ppt_第4页
使用与错误处理提高程序稳定性.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

代码跟踪 错误处理,本章目标,使用追踪的原因,使用 ASP.NET 跟踪可以查看关于 ASP.NET 页的单个请求的诊断信息。 使用跟踪还可以直接在代码中编写调试语句,而不必在将应用程序部署到成品服务器时从应用程序中移除这些语句。,代码跟踪 TRACE元素,通过 Page指令中的Trace属性控制是否在页面中启用追踪。 如果启用了跟踪,在请求该页时,ASP.NET 会为该页附加一系列的表,表中包含关于该页请求的执行详细信息。 默认情况下禁用跟踪。,代码跟踪 TRACE元素,TraceContext类,页面用TraceContext类暴露的方法生成其跟踪信息。在执行一个HTTP请求时,ASP.NET会创建一个TraceContext类的实例。Trace对象(TraceContext类的实例)通过HttpContenxt 类的Trace属性和Page类的Trace属性暴露出来。 TraceContext类有一个很简单的接口,它只有两个属性和一些方法。两个属性分别是IsEnabled 和 TraceMode属性: 将 TraceMode 设置为 SortByTime,以便按跟踪消息的处理顺序对跟踪消息进行排序。 将 TraceMode 设置为 SortByCategory,以便在页面或代码的TraceContext.Warn 和 TraceContext.Write 方法调用中指定的类别对消息排序。,TraceContext类,TraceContext.Write 方法将跟踪信息写入跟踪日志。 TraceContext.Warn 方法将警告信息写入跟踪日志。与Write不同,所有警告在日志中均显示为红色文本。,TraceContext类,为整个站点配置追踪,在应用程序的 Web.config 文件进行配置,可以方便实现除显式禁用跟踪的页之外的所有页中显示跟踪信息。 由于不必对各个页进行更改以启用或禁用跟踪,因此设置应用程序级别跟踪非常有用。,为整个站点配置追踪,在配置文件中配置 在浏览器的地址栏中,在站点根目录后面输入trace.axd,浏览器显示当前缓存的跟踪项。,自定义跟踪输出,在页面加载事件里注册跟踪事件,protected void Page_Load(object sender, EventArgs e) Trace.TraceFinished+=new TraceContextEventHandler(Trace_TraceFinished); ,void Trace_TraceFinished(object sender, TraceContextEventArgs e) foreach (TraceContextRecord record in e.TraceRecords) Response.Write(string.Format(“0:1“,record.Category,record.Message); ,实现跟踪事件的方法,错误处理,对于一个Web应用程序来说,出错是在所难免的,因此我们应该未雨绸缪,为可能出现的错误提供恰当的处理。 除了C#中的try/catch之外,ASP.NET提供了四种处理错误的方式: Page_Error事件处理方法 Page.ErrorPage属性 Web.config文件的配置项。 Global.asax文件的Application_Error事件处理方法,Page.Error事件,注册事件:Page.Error 获得错误信息: Server.GetLastError() 清除错误对象: Server.ClearError(),节点,在Web.Config文件的节点中配置 mode有三种: On:开启错误处理,任何地方都适用 Off:关闭错误处理,任何地方都禁用 RemoteOnly:服务器端禁用错误处理,客户端才能看到错误页面 defaultRedirect:如果发生的异常没有在节点statusCode属性指定的范围之内,则跳转到此页面 节点:statusCode错误代码,redirect处理页面,Page.ErrorPage属性,可以在任何时候设置页面的ErrorPage属性,从而确定页面发生错误的时候会重定向至哪个页面。 为了使ErrorPage 起作用,的mode属性必须设置为On。 也可以在指令中设置ErrorPage。,Application_Error事件,在Global.asax文件中的Application_Error处理函数中捕获应用程序异常 调用Server.GetLastError().GetBaseException()获得异常 将异常保存在Application“error”中 调用Server.ClearError()清除已经处理的异常 跳转到处理页面显示错误信息,错误处理优先级,在异常发生的时候,错误处理方式根据优先级从高到低排序: Page_Error事件处理方法 Page.ErrorPage属性 Application_Error事件处理方法 配置项。 如果多个处理错误的机制同时存在,应用程序会按照优先级找到第一个满足条件的错误机制。,各个错误处理的关系,首先,要让ErrorPage属性能够发挥作用,必须将配置项中的mode属性设为“On” 其次,虽然Page_Error事件处理方法排在最前面,但是,如果忽略了Server.ClearError()方法的话,仍然会引发优先级较低的错误处理,也就是说ErrorPage属性等错误处理机制仍然会发挥作用,这样有可能出现无法控制的局面。,总结,实现页面跟踪功能在页面中如何设置 实现页面跟踪功能在配置文件中如何设置 实现自定义跟踪功能 四种页面级错误处理的实现 四种页面级错误处理的优先级,练习,1.以下对于配置文件中节点说明错误的是 () Enabled 设置整个网站是否启用跟踪 PageOutput 是否输出跟踪信息 TraceMode 跟踪方式 LocalOnly 是否在本地显示跟踪,练习,2.节点RequestLimit属性的作用是() 能够看到跟踪信息的用户数量 请求超时时间 是否可以看到跟踪 跟踪请求的用户类型,练习,3在网页中未使用 Try/Catch 块捕捉错误 将触发 哪个事件() W

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论