ASP.NET 实践:创建 ASP.NET 应用程序级别的事件处理器

ASP.NET 将应用程序事件绑定到 Global.asax 文件中定义的事件处理方法,这些方法通常以“Application_事件名”的格式进行命名(如 Application_BeginRequestApplication_Error)。

本例处理应用程序的 Error 事件,并把错误信息写入系统事件日志。Error 事件通常在应用程序出现错误或发生未知的页面错误时被引发。

如何创建 ASP.NET 应用程序级事件处理器

  • 如果网站中没有 Global.asax 文件,请先到根目录创建一个。

  • 创建以“Application_事件名”格式命名的事件处理方法。比如,可以为应用程序的 Error 事件创建名为 Application_Error 的处理器方法,该方法需要使用两个参数类型,一个是 Object,另一个是 EventArgs

实例

下列代码实例演示了如何在 Global.asax 文件中处理 Error 事件。实例中的处理器在应用程序发生任何未知异常时都会被调用。如果异常在页面对象 Error 事件的 try/catch 块中被捕获,那么应用程序不再引发该错误。


void Application_Error(Object sender, EventArgs e)

{

    if(!System.Diagnostics.EventLog.SourceExists("ASPNETApplication"))

    {

        System.Diagnostics.EventLog.CreateEventSource("ASPNETApplication", "Application");

    }

    System.Diagnostics.EventLog.WriteEntry("ASPNETApplication", Server.GetLastError().Message);

}

代码在系统事件日志中添加一条记录。首先检测事件日志中是否已经存在名为 ASPNETApplication 的记录,不存在则创建它。然后调用 GetLastError 方法获取到相关错误信息描述,并更新到系统日志。

编译代码

安全性

运行这个代码实例需要拥有对系统事件日志的存取权限。

你可能感兴趣的:(asp.net)