2009-10-20 13 views
9

Una de nuestras aplicaciones .NET 2.0 comenzó a desaparecer al azar. No hay registros en el registro de eventos, el Dr. Watson no genera volcado de emergencia, no hay nada ...¿Cómo solucionar problemas de la aplicación .NET que simplemente desaparece?

¿Cómo solucionar problemas de esta aplicación?

+0

¿Realiza alguna llamada p/invoke? –

+0

No directamente. Usamos Crystal Reports, que puede hacer tales llamadas. De todos modos, la aplicación funcionó durante un año sin problemas. – alex

+0

¿Utiliza algún componente COM? –

Respuesta

5

1) Adjunte un controlador de eventos al evento AppDomain.UnhandledException y registre el objeto de excepción.

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); 

2) Adjuntar un gestor de excepciones hilo

Application.ThreadException += 
    new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 

Para WPF y Silverlight aplicaciones que utiliza más controladores de excepciones, por ejemplo Application.DispatcherUnhandledException y Application.UnhandledException respectivamente, pero estos no son de su interés en este escenario. Los incluyo para completar.

+1

Se maneja - sin registro de registro. – alex

2

Modifique el código para incluir pasos de registro después de cada sección relevante, y luego verifique el archivo de registro para ver dónde va.

Si ni siquiera empezar, a continuación, que voy a decir algo demasiado ...

3

Tuvimos un problema similar. Tuvimos un evento para AppDomain.UnhandledException pero incluso se saltó esto. Resultó ser un SystemAccessViolation causado cuando probamos el contenido del portapapeles.

Si es similar (por ejemplo, omitir el evento AppDomain.UnhandledException), sugiero que se registre todo en interoperabilidad y llamadas de datos "hostiles" desde fuera de su proceso y el código lo revise todo. Nos llevó varias semanas rastrearlo y un cambio de una línea para solucionarlo.

Además, active MDA en VS y ejecute su programa con él y vea si obtiene errores.

Cuestiones relacionadas