Estoy buscando una solución mejor que la que tenemos actualmente para hacer frente a errores inesperados de producción, sin reinventar la rueda.¿Cuál es la mejor forma de recopilar/informar errores inesperados en aplicaciones de ventana .NET?
Una mayor cantidad de nuestros productos son aplicaciones WinForm y WPF que se instalan en sitios remotos. Inevitablemente se producen errores inesperados, desde NullReferenceExceptions hasta 'Errores generales de red'. Por lo tanto, abarca desde errores del programador hasta problemas ambientales.
Actualmente todas estas excepciones no controladas se registran usando log4net y luego se envían por correo electrónico a nosotros para el análisis . Sin embargo, encontramos que a veces estos 'informes' de error contienen muy poca información para identificar el problema.
En estos informes que necesitan información, tales como:
- Nombre de la aplicación
- Versión de la aplicación
- estación de trabajo
- Tal vez una captura de pantalla
- Detalles de la excepción
- sistema operativo
- RAM disponible
- procesos que se ejecutan
- y así sucesivamente ...
que realmente no quieren reinventar la rueda mediante el desarrollo de esto desde el principio. Componentes que se requieren:
- colección de errores (detalles como se mencionó anteriormente)
- error 'emisor' (Queuing necesario si DB o Internet no está disponible)
- base de datos de error
- Análisis y presentación de informes de estos errores . P.ej. Los 10 errores o tiempos de espera más frecuentes ocurren entre las 4:00 p.m. y las 5:00 p.m. ¿Cómo se comparan los errores entre la versión x y y?
Nota: nos fijamos en SmartAssembly como una posible solución, pero aunque está cerca no bastante cumplió con nuestras necesidades y que estaba esperando escuchar lo que otros desarrolladores hacen y si existen algunas alternativas.
Edit: Gracias por las respuestas hasta el momento. Tal vez no estaba claro en mi pregunta original, el problema no es cómo atrapar todas las excepciones sin manos sino cómo lidiar con ellas y crear un motor de informes (análisis) a su alrededor.
Hola, estoy interesado en qué era lo que significaba que Smartassembly no acababa de satisfacer ¿tus necesidades? –