创建全局错误处理程序
要创建页中的全局处理程序,请创建 Page_Error 事件的处理程序。要创建应用程序范围的错误处理程序,请在 Global.asax 文件中将代码添加到 Application_Error 方法。只要您的页或应用程序中发生未处理的异常,就会调用这些方法。您可以从 HttpServerUtility.GetLastError 方法获取有关最新错误的信息。
注意 如果您具有全局错误处理程序,则它优先于在 Web.config customErrors 元素的 defaultRedirect 属性中指定的错误处理。
下面显示的是一个示例处理程序,它获取有关当前错误的信息,将其放在 Session 变量中,并调用可以提取和显示错误信息的一般错误处理页。
' Visual Basic
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Session("CurrentError") = "Global: " & Server.GetLastError.Message
Server.Transfer("lasterr.aspx")
End Sub
-----------------------------------------------------------------------------------------------------------------------------
web.config这样用
在应用程序的 Web.config 文件中,对 customErrors 元素进行以下更改:
将 mode 属性设置为 RemoteOnly(区分大小写)。这就将应用程序配置为仅向本地用户(您和开发人员)显示详细的错误。
(可选)包括指向应用程序错误页的 defaultRedirect 属性。
(可选)包括将错误重定向到特定页的 <error> 元素。例如,您可以将标准 404 错误(未找到页)重定向到您自己的应用程序页。
以下示例显示 Web.config 文件中的典型 customErrors 块。
<customErrors mode="RemoteOnly" defaultRedirect="AppErrors.aspx">
<error statusCode="404" redirect="NoSuchPage.aspx"/>
<error statusCode="403" redirect="NoAccessAllowed.aspx"/>
</customErrors>
------------------------------------------------------------------------------------------------------------------------------
web.config设置
<customErrors mode="Off">
</customErrors>
将以下代码添加到 Global.asax 文件中: Imports System.Diagnostics
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Dim objErr As Exception = Server.GetLastError().GetBaseException()
Dim err As String = "Error Caught in Application_Error event" & _
System.Environment.NewLine & _
"Error in:" & Request.Url.ToString() & _
System.Environment.NewLine & _
"Error Message:" & objErr.Message.ToString() & _
System.Environment.NewLine & _
"Stack Trace:"& objErr.StackTrace.ToString()
EventLog.WriteEntry("Sample_WebApp", err, EventLogEntryType.Error)
Server.ClearError()
'additional actions...
End Sub
保存 Global.asax 文件。