Asp.net下如何处理错误页

创建全局错误处理程序

要创建页中的全局处理程序,请创建 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 文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值