Saltar al contenido

No se puede evaluar la expresión porque el código está optimizado o hay un marco nativo en la parte superior de la pila de llamadas

No olvides que en las ciencias un problema casi siempre tiene diferentes resoluciones, pero mostraremos la mejor y más óptimo.

Solución:

Request.Redirect(url,false);

false indica si la ejecución de la página actual debe terminar.

Haz el segundo argumento de Responsefalse Como se muestra abajo.

Response.Redirect(url,false);

Resolución

Para solucionar este problema, utilice uno de los siguientes métodos:

  • Para Respuesta.Finllama a HttpContext.Current.ApplicationInstance.CompleteRequest()
    método en lugar de Respuesta.Fin para omitir la ejecución del código a la
    Application_EndRequest evento.

  • Para Respuesta.Redirecciónusa una sobrecarga, Response.Redirect(URL de cadena, bool respuesta final) eso pasa false Para el respuesta final parámetro para suprimir la llamada interna a Respuesta.Fin. Por ejemplo: Response.Redirect
    ("nextpage.aspx", false);
    Si usa esta solución alternativa, se ejecuta el código que sigue a Response.Redirect.

  • Para Servidor.Transferirutilizar el Servidor.Ejecutar método en su lugar.

Síntomas

Si usa el método Response.End, Response.Redirect o Server.Transfer, se produce una excepción ThreadAbortException. Puede usar una instrucción try-catch para detectar esta excepción.

Causa

El método Response.End finaliza la ejecución de la página y cambia la ejecución al evento Application_EndRequest en la canalización de eventos de la aplicación. La línea de código que sigue a Response.End no se ejecuta.

Este problema ocurre en los métodos Response.Redirect y Server.Transfer porque ambos métodos llaman a Response.End internamente.

Estado

Este comportamiento es por diseño.

Propiedades

ID del artículo: 312629 – Última revisión: 30 de agosto de 2012 – Revisión: 4.0

Se aplica a

  • Microsoft ASP.NET 4.5
  • Microsoft ASP.NET 4
  • Microsoft ASP.NET 3.5
  • Microsoft ASP.NET 2.0
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0

Palabras clave: kbexcepthandling kbprb KB312629

Fuente: PRB: ThreadAbortException se produce si utiliza Response.End, Response.Redirect o Server.Transfer

Te mostramos comentarios y calificaciones

Finalizando este artículo puedes encontrar las notas de otros programadores, tú igualmente tienes la opción de insertar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *