Sto cercando una soluzione migliore rispetto a quello che attualmente abbiamo a che fare con errori di produzione imprevisti, senza reinventare la ruota.Qual è il modo migliore per raccogliere/segnalare errori imprevisti nelle applicazioni della finestra .NET?
Un numero maggiore dei nostri prodotti sono applicazioni WinForm e WPF installate in siti remoti. Si verificano errori inevitabilmente imprevisti, da NullReferenceExceptions a "Errori di rete generali". Quindi vanno dagli errori del programmatore ai problemi ambientali.
Attualmente tutte queste eccezioni non gestite vengono registrate utilizzando log4net e quindi inviate via email a noi per l'analisi . Tuttavia, abbiamo riscontrato che a volte questi "rapporti" di errore contengono troppe informazioni per identificare il problema.
In questi rapporti abbiamo bisogno di informazioni come ad esempio:
- Nome applicazione
- Versione applicazione
- Workstation
- Forse una schermata
- Dettagli eccezione
- Sistema operativo
- RAM disponibile
- processi in corso
- e così via ...
non voglio davvero di re-inventare la ruota con lo sviluppo di questo da zero. I componenti che sono necessari:
- raccolta Errore (dettagli come detto sopra)
- errore 'mittente' (accodamento necessario se DB o Internet non è disponibile)
- database di errore
- analisi e la segnalazione di questi errori . Per esempio. 10 errori o timeout più frequenti si verificano tra le 16:00 e le 17:00. Come si confrontano gli errori tra la versione x e y?
Nota: abbiamo guardato SmartAssembly come una possibile soluzione, ma anche se vicino non ha del tutto soddisfatto le nostre esigenze e speravo di sentire ciò che gli altri sviluppatori fanno e se esistono alcune alternative.
Modifica: Grazie per le risposte finora. Forse non ero chiaro nella mia domanda iniziale, il problema non è come catturare tutte le eccezioni non gestite, ma piuttosto come gestirle e creare un motore di reporting (analisi) attorno a loro.
Ciao, mi interessa che cosa era che significava che SmartAssembly non riusciva a soddisfare I tuoi bisogni? –