2009-12-29 46 views
18

Estoy trabajando en una aplicación asp.net .. cuando intento compilar y ejecutar la aplicación; funciona con éxitoSe produjo una primera excepción de tipo 'System.Threading.ThreadAbortException' en mscorlib.dll

Pero cuando intento para depurar la aplicación me da error en cualquier punto -

Una primera excepción del tipo 'System.Threading.ThreadAbortException' en mscorlib.dll

Eso no dan error en cualquier línea de código específica ... da este error en cualquier código de línea (no estoy seguro) ... y luego muestra la página web - error "Aplicación de servidor no disponible".

Incluso cuando trato de analizar/ejecutar alguna declaración en la ventana inmediata/rápida reloj - me da error anterior ..

por ejemplo, que carga un documento XML (de más de 10000 líneas) en XElement y cuando trato de verificar algún valor de atributo a través de xpath como XElementObj.XPathSelectElement ("/ asdf/asd/wqer/xyz") ... da el error anterior ... (no todo el tiempo, sino aleatoriamente).

cualquiera que tenga alguna idea sobre esto ... por favor ayuda.

+0

No estoy seguro de que esto tenga algo que ver con una 'excepción de primera oportunidad': una excepción de primera oportunidad es una excepción que fue capturada y manejada, manteniendo la integridad del flujo de trabajo. –

Respuesta

32

que tenían algo similar, y se encontró this answer de otra pregunta: ¿

Si desea determinar con precisión dónde se están produciendo los excepciones, se puede seleccionar el de Depuración> Excepciones menú artículo, y en el cuadro de diálogo que aparece, marque la primera casilla de verificación para "Common Language Runtime Exceptions". Este hará que el depurador se rompa tan pronto como se produzca una excepción en lugar de solo rompiendo excepciones no controladas.

Ésta es también una de las razones por las que es generalmente una mala idea para atrapar genéricos excepciones a menos que esté claramente el registro de la información capturada.

+0

OMG. ¡Cuántas veces olvidé eso ... Gracias de nuevo por recordarme! No me gusta el nuevo "tira todo a mi alrededor", no muy cerca :-) Demasiadas excepciones, hombre ... –

12

que había esta excepción lanzada en mi aplicación asp.net, y se encontró this forum post:

PRB: ThreadAbortException se produce si utiliza Response.End, Response.Redirect o Server.Transfer http://support.microsoft.com/default.aspx?scid=kb;en-us;312629

Esto tiene sentido ya que estaba a redirigir en una página de la derecha antes de que algo se hizo (comportamiento esperado por cierto)

Solución por MS para suprimir las excepciones:

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

  • Para Response.End, llame al método HttpContext.Current.ApplicationInstance.CompleteRequest en lugar de Response.End para omitir la ejecución del código para el evento Application_EndRequest.

  • Para Response.Redirect, use una sobrecarga, Response.Redirigir (String url, bool endResponse) que pasa falso para el parámetro endResponse para suprimir la llamada interna a Response.End. Por ejemplo: Response.Redirect ("nextpage.aspx", false);

  • Para Server.Transfer, use el método Server.Execute en su lugar.

Si utiliza esta solución, se ejecuta el código que sigue a Response.Redirect. Para Server.Transfer, use el método Server.Execute en su lugar.

Cuestiones relacionadas