asp.net错误处理封装
欢迎进入.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】