ASP.NET 将应用程序事件绑定到 Global.asax 文件中定义的事件处理方法,这些方法通常以“Application_事件名”的格式进行命名(如 Application_BeginRequest
和 Application_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
方法获取到相关错误信息描述,并更新到系统日志。
编译代码
安全性
运行这个代码实例需要拥有对系统事件日志的存取权限。