>> 微信网站-自助建站
西安做网站公司_西安做网站的公司_西安网站建设公司
首 页
西安网站建设
西安域名注册
西安网站空间
西安企业邮局
西安网站推广
网站知识中心
关于玖佰网络
西安做网站公司_西安做网站的公司_西安网站建设公司
知识中心
建站常见问题-->
域名空间企邮-->
网站建设推广-->
网站方案优化-->
服务指南
最新文章
西安学校教育行业网站建设方案
西安电子商务网站建设解决方案
西安酒店餐饮行业网站建设方案
西安旅游服务行业网站建设方案
西安医院医疗行业网站建设方案
西安政府电子政务网站建设方案
西安生产制造行业网站建设方案
做好网站原创内容设计的五大要点
  您现在的位置: 西安做网站_西安玖佰网络 > 知识中心 > 网站建设推广 > 正文
ASP.NET全局异常处理浅析
西安玖佰网络 www.029900.com  点击数:  更新时间:2009/4/17 14:13:53

  在我们写程序时偶尔会由于疏忽导致有些异常没有进行处理。如果将异常详细信息提示给用户会带来不安全因素,如果不提示详细信息又会给用户报告异常带来麻烦。虽然可以通过配置customErrors mode来实现只有管理员可以查看错误,但发现问题的时间可能会比较长。通过全局异常处理就可以在异常发生时立即记录异常,或直接发送邮件向管理员报告,以在最快的速度发现并处理异常。

  要为ASP.NET应用程序添加全局异常处理主要是添加HttpApplication的Error事件的处理。这与在BeginRequest事件中进行URL重写方法类似。先建一个继承System.Web.IHttpModule的类。然后添加Init方法和ShowError方法。

namespace Snowdream
{
public class HttpModule : System.Web.IHttpModule
{
public void Init(System.Web.HttpApplication context)
{
context.Error += new EventHandler(ShowError);
}
private void ShowError(object sender, EventArgs e)
{
//在这里进行异常处理
}
}
}

   然后还需要配置web.config的httpModules使之生效。

  我现在比较喜欢的做法是将异常的详细信息记录在数据库中,然后返回一个编号,再将页面重定向到自己写的错误提示页,将这个编号提示给用户,用户如果要报告错误只需提供该错误编号,管理员就能在后台中找到错误的详细信息并进行修改。

  下面说2个我在做全局异常处理时碰到的问题及我的解决方案:

  第一个是获取异常hResult,由于是私有属性不能直接访问,解决方法是通过(int)System.Runtime.InteropServices.Marshal.GetHRForException(exception)来获取;

  第二个问题是记录了很多不是由于ASP.NET应用程序引发的错误,比如用户键入一个错误的URL,异常处理系统会记录一个“文件不存在。”的错误,而这些错误记录不仅不能真正反映出ASP.NET应用程序的异常反而会给管理员带来更多麻烦。我的解决方法是通过判断if(exception is System.Web.HttpException)来过滤这些HttpException。

 
我们专注于:西安网站建设,网站制作,网页设计,网站推广,网站改版,网站维护,域名注册,网站空间等服务
[西安玖佰网络http://www.029900.com/] 专业的西安做网站公司。
  • 上一篇文章:
  • 下一篇文章:
  • 网站地图 | 友情链接 | 联系方式 | 文档下载 | 人才招聘 | 付款方式 | 技术论坛
    西安做网站 西安建网站电话:15339190980 / 029-85535950 Email:900c@163.com
    西安玖佰网络 www.029900.com Copyright 2006-2021 版权所有 备案号:陕ICP备08103580号
    西安网站建设 西安做网站公司 西安网站制作 西安做网站的公司
    点击这里给我发消息
    点击这里给我发消息
    点击这里给我发消息
    点击这里给我发消息