Kann ich eine Benachrichtigung von Global.asax auf einer Seite zeigen, die ein SQL-Timeout ist zu erfahren?

StackOverflow https://stackoverflow.com/questions/1440039

Frage

In Global.asax, ist es eine Möglichkeit, SQL-Timeouts elegant zu handhaben, und eine Meldung, die den Fehler auf der anfordernden Seite angezeigt werden? Ich weiß Global.asax die Application_Error und Fehlerereignisse hat, aber ich bin nicht sicher, welche (falls vorhanden) ich verwenden könnte dies zu erreichen.

Verwandte, kann ich auf die Seite Instanz, die den Fehler ausgelöst, dass Global.asax ist der Umgang mit?

Danke!

War es hilfreich?

Lösung

In 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");
            
        }
    }
}

Andere Tipps

Sie könnten die web.config benutzerdefinierten Fehler verwenden wie hier erklärt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top