Domanda

cerco HttpExceptions nella sub Application_Error della mia 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

posso passo attraverso questo codice e confermo lo fa ha colpito il Server.Transfer ( "error_404.aspx"), così come il Page Load di error_404.aspx, ma tutto ciò che mostra è una pagina vuota.

È stato utile?

Soluzione

Stai cancellare la memoria di risposta? Tu non hai idea di cosa è già lì, dal momento che si sta facendo questo nel Application_Error catch-all. Server.Transfer appena aggiunge qualunque sia la nuova pagina genera sulla risposta esistente. Ovviamente questo potrebbe creare qualche problema.

Altri suggerimenti

Funziona se si cambia la Server.Transfer ad un Response.Redirect? (Potrebbe essere necessario utilizzare il prefisso HttpContext.Current da dove ci si trova in Global.asax.)

Non sono sicuro che un Server.Transfer è una buona idea nel contesto di quello che stai facendo, dal momento che si sta effettivamente chiedendo IIS per rendere l'URL global.asax al browser.

Credo che se si verifica un errore, server.Transfer non scatta mai.

server.Transfer non è un buon metodo per questo. Prova con Response.Redirect . Dovrebbe funzionare.

Se avete qualche eccezione v'è alcuna necessità di mantenere gli stati? In caso contrario, andare con Response.Redirect.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top