0

在 Global.asax 中,有没有办法优雅地处理 SQL 超时,并在请求页面上显示一条消息来解释错误?我知道 Global.asax 有 Application_Error 和 Error 事件,但我不确定我可以使用哪个(如果有的话)来完成这个。

相关,我可以访问引发 Global.asax 正在处理的错误的页面实例吗?

谢谢!

4

2 回答 2

1

在 global.asax.vb

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)

        If TypeOf (Context.Error.GetBaseException) Is System.Data.SqlClient.SqlException Then

            Dim ex As System.Data.SqlClient.SqlException = Context.Error.GetBaseException

            If (ex.Errors.Count = 1 And ex.Number = -2) Then

                Server.ClearError()

                Response.Redirect(Context.Request.Url.ToString() & "?error=MessageHere")

            End If


        End If

End Sub

在 C# 中

public void Application_Error(object sender, EventArgs e)
{
    if ((Context.Error.GetBaseException) is System.Data.SqlClient.SqlException) {
        
        System.Data.SqlClient.SqlException ex = Context.Error.GetBaseException;
        
        if ((ex.Errors.Count == 1 & ex.Number == -2)) {
            
            Server.ClearError();
                
            Response.Redirect(Context.Request.Url.ToString() + "?error=MessageHere");
            
        }
    }
}
于 2009-09-18T14:08:07.700 回答
0

您可以使用此处解释的 web.config 自定义错误

于 2009-09-17T16:54:20.903 回答