Application_Error del Global.asax

02/02/2008 - 14:00 por Fabián | Informe spam
Les agradeceré mucho que me ayuden con el tema.

Necesito registrar los errores de mi aplicación y tratando de implementar un
método para primero mostrar (solo en producción) y luego registrar no me
responde el metodo Application_Error.

Solo me funciona la instrucción Response.Redirect

pero cuando saco el Response.Redirect y trato de mostrar los datos del error
previo a registrarlos no me funciona, no me captura el error.

abajo pongo el código que estoy aplicando.

void Application_Error(object sender, EventArgs e)
{
// Código que se ejecuta al producirse un error no controlado
Exception objErr = Server.GetLastError().GetBaseException();
string err = "Error Capturado en Application_Error event" +
"Error in: " + Request.Url.ToString() +
"Error Message:" + objErr.Message.ToString() +
"Stack Trace:" + objErr.StackTrace.ToString();
Response.Write(err);

// Response.Redirect("Http://localhost/adminpersonal/Errors.htm");

}

Si activo el Response.Redirect no me captura el error para verlo antes de
registrarlo.
Fabián.
Principiante.
 

Leer las respuestas

#1 Alberto Poblacion
02/02/2008 - 18:53 | Informe spam
"Fabián" wrote in message
news:
[...]
Response.Write(err);
// Response.Redirect("Http://localhost/adminpersonal/Errors.htm");

Si activo el Response.Redirect no me captura el error para verlo antes de
registrarlo.



Lógico. Estás enviando el mensaje al propio Response y a continuación
haciendo un Redirect. El Redirect, la forma en la que funciona, es que
transmite al navegador un código de error HTTP que significa "esta página ya
no existe y se ha movido a..." y a continuación la dirección que has puesto
en el Redirect. El navegador sabe "interpretar" ese código de error y lo que
hace es que vuelve a enviar al servidor una petición HTTP pidiendo que le
sirva la nueva página, y esta última es la que se muestra en pantalla. Por
lo tanto, cualquier cosa que hubieras enviado al Response antes del Redirect
nunca llega a verse en el navegador. Tendrás que pensar otra forma de
mostrar el error, por ejemplo, añadirlo como parámetro a la URI a la que
haces el Redirect, y que dicha página lo extraiga del QueryString y sea ella
la que haga el Response.Write.

Preguntas similares