Могу ли я показать предупреждение от Global.asax на странице, на которой истекло время ожидания SQL? - PullRequest
0 голосов
/ 17 сентября 2009

В Global.asax, есть ли способ элегантно обработать тайм-ауты SQL и отобразить на запрашивающей странице сообщение с объяснением ошибки? Я знаю, что в Global.asax есть события Application_Error и Error, но я не уверен, какой (если есть) я мог бы использовать для достижения этой цели.

Связано, могу ли я получить доступ к экземпляру страницы, вызвавшему ошибку, которую обрабатывает Global.asax?

Спасибо!

Ответы [ 2 ]

1 голос
/ 18 сентября 2009

В 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

In 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");
            
        }
    }
}
0 голосов
/ 17 сентября 2009

Вы можете использовать пользовательские ошибки web.config , как описано здесь

...