Situation:Uncatchable erreur .NET runtime 2.0 - machine de l'utilisateur - que faire ensuite?
J'ai une application qui utilise intensivement les connexions http (stream ripping app) et qui est supposée fonctionner 24h/24 et 7j/7. Et c'est le cas.
Cependant, de temps en temps, il se bloque avec l'erreur d'exécution qui est uncaught partout, et les décharges suivantes dans le journal des événements:
Event Type: Error
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5000
Date: 13.10.2010
Time: 11:02:30
User: N/A
Computer: STREAM01
Description:
EventType clr20r3, P1 streamsink.exe, P2 1.0.0.42484, P3 4c880fd9, P4 mscorlib, P5 2.0.0.0, P6 4add54dc, P7 344a, P8 21c, P9 system.io.ioexception, P10 NIL.
Ma question est: comment savoir quelle ligne de code a causé l'accident. Je déploie des fichiers .PDB avec les binaires, mais ... Que faire?
cible est Windows XP, Framework 2.0 est
EDIT:
Je possède ce déjà mis en œuvre:
static public void InitializeExceptionHandler(string AppName) {
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException+=new UnhandledExceptionEventHandler(currentDomain_UnhandledException);
_appName=AppName;
}
Non, ça ne marche pas!
Ceci est une sorte de fuite à SO. Des dizaines de milliers de questions toutes différentes mais ayant la même réponse. Implémenter AppDomain.UnhandledException et log/display/email/print e.ExceptionObject.ToString(). –
@Hans: malheureusement, cela n'aide pas. Il y a des exceptions qui sont gérées, mais celle-ci passe inaperçue. –
C'est juste une IOException, l'une des plus courantes. Du pain et du beurre, il y a un problème avec votre code. Nous ne pouvons pas voir le gestionnaire d'exceptions dans votre extrait de code, il est probablement imprudent de ne pas appeler Environment.Exit() après vous avoir envoyé un e-mail. –