Question

Je cherche HttpExceptions dans la sous mon global.asx Application_Error

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

Je peux suivre cet code et confirme qu'il ne touche le Server.Transfer ( « error_404.aspx »), ainsi que la Page_Load de error_404.aspx, mais tout ce qu'il montre est une page blanche.

Était-ce utile?

La solution

Êtes-vous nettoyez le tampon de réponse? Vous avez aucune idée de ce qui est déjà là, puisque vous faites cela dans le fourre-tout Application_Error. Server.Transfer quelle que soit la juste ajoute une nouvelle page génère sur la réponse existante. Il est évident que cela pourrait créer des problèmes.

Autres conseils

Est-ce que ça marche si vous changez le Server.Transfer à un Response.Redirect? (Vous devrez peut-être utiliser le préfixe HttpContext.Current d'où vous êtes global.asax.)

Je ne suis pas sûr que Server.Transfer est une bonne idée dans le contexte de ce que vous faites, puisque vous demandez efficacement IIS pour rendre l'URL global.asax au navigateur.

Je pense que si une erreur se produit, Server.Transfer ne se déclenche pas.

Server.Transfer n'est pas une bonne méthode pour cela. Essayez avec Response.Redirect . Il devrait fonctionner.

Si vous avez une exception est-il nécessaire de maintenir les états? Sinon, rendez-vous avec Response.Redirect.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top