Pregunta

busco HttpExceptions en la sub Application_Error de mi 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

Me puede dar un paso a través de este código y confirmar que no golpeó el Server.Transfer ( "error_404.aspx"), así como el Page_Load de error_404.aspx, pero todo lo que muestra es una página en blanco.

¿Fue útil?

Solución

¿Está borrar la memoria de respuesta? No tienes ni idea de lo que ya está ahí, ya que está haciendo esto en el cajón de sastre Application_Error. Server.Transfer simplemente añade cualquiera que sea la nueva página genera en la respuesta existente. Obviamente, esto podría crear algunos problemas.

Otros consejos

¿Funciona si cambia el Server.Transfer a un Response.Redirect? (Es posible que tenga que utilizar el prefijo HttpContext.Current desde donde está en global.asax.)

No estoy seguro de que un Server.Transfer es una buena idea en el contexto de lo que está haciendo, ya que está pidiendo con eficacia IIS para hacer que la URL global.asax al navegador.

Creo que si se produce algún error, Server.Transfer no se disparará.

Server.Transfer no es un buen método para esto. Pruebe con Response.Redirect . Se debe trabajar.

Si usted tiene alguna excepción es que hay ningún requisito para el mantenimiento de los estados? Si no es así, ir con Response.Redirect.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top