Resumiendo se produce porque el Response.Redirect() internamente llama a Response.End() que a su vez llama a Thread.Abort() lo que produce el error.
Para resolver esto usamos el método con el segundo parámetro en false, o sea:
Response.Redirect(mipagina.aspx, false) ;
Con esto evitamos que se llame a Response.End(). Si bien esto resuelve en la mayoría de lo casos el error, es más seguro y eficiente añadir inmediatamente después la linea:HttpContext.Current.ApplicationInstance.CompleteRequest();para dar por finalizado el request de la pagina y que ésta no se siga dibujando ni ejecutando.
Ademas como indica el articulo es recomendable hacer override de los métodos RaisePostBackEvent y Render aunque esto último no es tan necesario.
1 comments:
Interesante Mr. Foy, conozco una aplicación que tiene muchos de esos errores en el Event Log, voy a implementar esta solución.
Publicar un comentario