Nuestros registros informan ThreadAbortException
s que detienen nuestros trabajos de Quartz.NET en intervalos aparentemente aleatorios. Por lo que entiendo, esto normalmente no sería causado por algo que está haciendo el hilo (por ejemplo, leer un archivo de un servidor FTP, o ejecutar una consulta LINQ a Entidades), sino más bien porque algún proceso externo le está diciendo al hilo que se detenga. . Además, la forma en que se crean los registros me lleva a creer que toda la aplicación web se reinicia cuando obtenemos estos errores, así que supongo que el proceso de reinicio es lo que está causando que el hilo sea abortado en primer lugar.¿Cómo puedo averiguar por qué se detiene mi hilo en ASP.NET?
Entonces mi pregunta es: ¿cómo puedo averiguar por qué se reinicia el servidor/la aplicación? ¿Hay registros en alguna parte que me den detalles sobre cada reinicio? ¿Hay causas comunes para algo como esto que deba investigar?
Gracias de antemano por su ayuda.
Editar
acabo de tener una discusión con algunos compañeros de trabajo, y suena como IIS pone automáticamente la aplicación a dormir después de un cierto periodo de inactividad, lo que podría ser parte del problema. Con algunas investigaciones, encontré una configuración de "Tiempo de inactividad" para subprocesos de trabajo en IIS. Creo que cuando la aplicación no ha procesado ninguna solicitud por una cierta cantidad de tiempo, emite un comando de apagado. Por alguna razón, Quartz no se apaga inmediatamente, sino que espera a que se despida el siguiente trabajo, y luego el sistema detecta el hilo del trabajo y lo mata mientras intenta ejecutarlo.
Así que supongo que tenemos que encontrar alguna manera de terminar grácilmente cualquier trabajo en ejecución cuando el sistema se apaga, y hacer que Quartz realmente se apague cuando se lo indique, si no está ejecutando ningún trabajo. ¿Alguien tiene alguna experiencia con este tipo de problema?
¿Está perfrming alguna Response.Redirects en su código? –
No, esto no sucede durante una solicitud. Está sucediendo como parte de un trabajo de Quartz. – StriplingWarrior
Hi StriplingWarrior, Estamos teniendo exactamente los mismos problemas que usted describe. Cuando ApplicationPool recicla los trabajos de .net de cuarzo, reciben una ThreadAbortException y después del segundo reciclado, los trabajos de cuarzo .net ya no se ejecutan. ¿Alguna vez resolvió los problemas? Si es así, le agradecería si pudiera describir brevemente cómo. Gracias de antemano, Enric –