代码之家  ›  专栏  ›  技术社区  ›  Mark Carpenter

我可以在遇到SQL超时的页面上显示global.asax发出的警报吗?

  •  0
  • Mark Carpenter  · 技术社区  · 15 年前

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

    相关,是否可以访问引发global.asax正在处理的错误的页面实例?

    谢谢!

    2 回复  |  直到 15 年前
        1
  •  1
  •   Jim    15 年前

    在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");
                
            }
        }
    }
    
        2
  •  0
  •   Locksfree    15 年前

    您可以使用web.config自定义错误 as explained here