asp.net错误处理封装

2013 年 1 月 19 日5110

欢迎进入.NET社区论坛,与300万技术人员互动交流 >>进入

  功能描述:asp.net中统一的错误修理,与本类相配套需要增加一个错误信息显示页面,如error.aspx

  使用说明:

  1. 在application_Start()中启动定时器(定时清空错误信息):ErrorManager.Instance.Start(),

  默认12小时运行一次,或用ErrorManager.Instance.SetTimerInterval()设置。

  2. 在Application_Error()中,当发生错误时,保存这个错误信息并转到error.aspx中显示这个错误

  string key = ErrorManager.Instance.AddError();

  Response.Redirect("error.aspx?key=" + key);

  3. 在error.aspx中通过url传来的key,取得并显示错误信息:

  string err = ErrorManager.Instance.GetError(key)

  err中前19个字符是错误发生的时间,后面是错误信息。

  4. 为了捕捉session超时的错误,而不是返回Session[key]是null的错误信息,本类增加了GetSession()

  和SetSession函数来统一管理Session,以后aspx中不能直接读取Session,而必须通过本类来读取。

  创建标识:

  修改标识:

  修改描述:

  修改标识:

  修改描述:

  ----------------------------------------------------------------/

  using System;

  using System.Data;

  using System.Configuration;

  using System.Web;

  using System.Web.Security;

  using System.Web.UI;

  using System.Web.UI.WebControls;

  using System.Web.UI.WebControls.WebParts;

  using System.Web.UI.HtmlControls;

  using System.Collections;

  ///// <summary>

  /// Summary description for Error

  /// </summary>

  public class ErrorManager

  {

  PRivate System.Timers.Timer m_timer;

  private Hashtable m_htErr;

  ///// <summary>

  /// 私有的构造函数

  /// </summary>

  private ErrorManager()

  {

  this.m_timer = new System.Timers.Timer();

  this.m_timer.Enabled = false;

  this.m_timer.Interval = 12 60 60 1000; //默认12个小时执行一次

  this.m_timer.Elapsed += new System.Timers.ElapsedEventHandler(m_timer_Elapsed);

  this.m_htErr = new Hashtable();

  }

  ///// <summary>

  /// 单例模式的接口

  /// </summary>

  public static readonly ErrorManager Instance = new ErrorManager();

  ///// <summary>

  /// 设置定时器的频率,单位是毫秒

  /// </summary>

  /// <param>毫秒</param>

  public void SetTimerInterval(int Interval)

  {

  this.m_timer.Interval = Interval;

  }

  ///// <summary>

  /// 定时器开始

  /// </summary>

  public void TimerStart()

  {

  this.m_timer.Enabled = true;

  }

  ///// <summary>

  /// 定时器结束

  /// </summary>

  public void TimerStop()

  {

[1][2]下一页

【责编:ivy】

0 0