Frage

Ich suche HttpExceptions im Application_Error Unter meinem global.asx

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

        Dim ex As Exception = HttpContext.Current.Server.GetLastError()

        If ex IsNot Nothing Then
            If TypeOf (ex) Is HttpUnhandledException Then
                If ex.InnerException Is Nothing Then
                    Server.Transfer("error.aspx", False)
                End If
                ex = ex.InnerException
            End If

            If TypeOf (ex) Is HttpException Then
                Dim httpCode As Integer = CType(ex, HttpException).GetHttpCode()
                If httpCode = 404 Then
                    Server.ClearError()
                    Server.Transfer("error_404.aspx", False)
                End If
            End If
        End If
End Sub

Ich kann diesen Code ein und bestätigen Schritt durch den Server.Transfer getroffen hat ( „error_404.aspx“), sowie die Page_Load von error_404.aspx, aber alles, es zeigt eine leere Seite.

War es hilfreich?

Lösung

Löschen Sie den Antwortpuffer? Sie haben keine Ahnung, was schon da ist, da Sie dies in der Application_Error catch-all tun. Server.Transfer anhängt nur, was die neue Seite auf die vorhandene Reaktion erzeugt. Natürlich könnte dies einige Probleme schaffen.

Andere Tipps

Funktioniert es, wenn Sie die Server.Transfer zu einem Response.Redirect ändern? (Sie können verwenden, haben die HttpContext.Current Präfix aus, wo Sie sind in global.asax.)

Ich bin nicht sicher, dass ein Server.Transfer ist eine gute Idee, im Rahmen dessen, was Sie tun, da Sie effektiv IIS fragen die global.asax URL an den Browser zu machen.

Ich denke, wenn ein Fehler auftritt, Server.Transfer wird nicht ausgelöst.

Server.Transfer ist keine gute Methode dafür. Versuchen Sie, mit Response.Redirect . Es sollte funktionieren.

Wenn Sie eine Ausnahme haben, ist es eine Anforderung, die die Zustände für die Aufrechterhaltung? Wenn nicht, geht mit Response.Redirect.

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