try personalizadas new net exceptions example custom create catch asp asp.net exception

asp.net - personalizadas - throw custom exception c#



¿Por qué me sale "El hilo estaba siendo abortado" en asp.net? (7)

ASP.NET genera y elimina procesos de trabajo todo el tiempo según sea necesario. Su hilo acaba de ser cerrado por ASP.NET.

Vieja respuesta:

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

Response.Redirect ("bla.aspx", false);

o

try { Response.Redirect("bla.aspx"); } catch (ThreadAbortException ex) { }

No estoy seguro de por qué sucede esto y nunca aborto explícitamente los hilos, por lo que es un poco sorprendente. Pero registro Excepciones y estoy viendo:

System.Threading.ThreadAbortException - El hilo estaba siendo abortado.

Parece suceder en una llamada a System.Threading.WaitHandle.WaitOne . No estoy seguro de hasta dónde va esta Excepción. No creo que mis hilos terminen nunca porque capturo el registro y me trago el error.

¿Alguien sabe por qué estoy recibiendo estos errores? ¿Quizás es cuando estoy terminando mi servidor por la fuerza o solicitando que se reinicie? Si no es así, ¿qué podría estar causándoles?


Este error puede deberse al intentar finalizar la respuesta más de una vez. Como otras respuestas ya mencionadas hay varios métodos que terminarán una respuesta (como Response.End o Response.Redirect ). Si llama a más de uno en una fila, obtendrá este error.

Me encontré con este error cuando traté de utilizar Response.End después de usar Response.TransmitFile que también parece finalizar la respuesta.


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

La solución para este problema es la siguiente.

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

Visite este enlace para descargar ejemplos de muestra.



Obtuve este error cuando hice un Response.Redirect después de un inicio de sesión exitoso del usuario.

Lo arreglé haciendo una FormsAuthentication.RedirectFromLoginPage en FormsAuthentication.RedirectFromLoginPage lugar.


Para un servicio web alojado en ASP.NET, la propiedad de configuración es executionTimeout:

<configuration> <system.web> <httpRuntime executionTimeout="360" /> </system.web> </configuration>

Establezca esto y la excepción de aborto de hilos desaparecerá :)


Si genera hilos en Application_Start , seguirán ejecutándose en el AppDomain del grupo de aplicaciones.

Si una aplicación está inactiva durante algún tiempo (lo que significa que no se reciben solicitudes), o se cumplen otras condiciones, ASP.NET reciclará todo el AppDomain .

Cuando eso sucede, se anularán los hilos que haya iniciado desde ese AppDomain , incluidos los de Application_Start .

Mucho más sobre grupos de aplicaciones y reciclaje en esta pregunta: ¿Qué es exactamente el reciclaje de Appdominio?

Si está intentando ejecutar un proceso de larga ejecución dentro de IIS/ASP.NET , la respuesta breve suele ser "No hacer". Para eso están los servicios de Windows.