Frage

Eine .Net 4.0-App stürzt bei einem Benutzer immer wieder ab, aber nur bei ihm konnte ich den Fehler nicht reproduzieren.Er hat das beigefügt WERInternalMetadata.xml Datei, die vom Windows Crash Reporter generiert wurde.Als ich es öffnete, stellte ich fest, dass es sich um eine handelt System.IO.FileNotFoundException Das führt zum Absturz der Software. Es gibt jedoch keine in dieser Funktion aufgerufenen Funktionen, die eine solche Ausnahme auslösen würden. Das Problem liegt also woanders oder tiefer.

Dies ist der „interessanteste“ Teil der Datei.Es enthält (hexadezimale) Zahlen, aber ich konnte nicht herausfinden, was sie bedeuten.

<ProblemSignatures>
    <EventType>CLR20r3</EventType>
    <Parameter0>rstvshowtracker.exe</Parameter0>
    <Parameter1>1.0.3842.33258</Parameter1>
    <Parameter2>4c374e79</Parameter2>
    <Parameter3>mscorlib</Parameter3>
    <Parameter4>4.0.0.0</Parameter4>
    <Parameter5>4ba1da6f</Parameter5>
    <Parameter6>1620</Parameter6>
    <Parameter7>14</Parameter7>
    <Parameter8>System.IO.FileNotFoundException</Parameter8>
</ProblemSignatures>

Gibt es eine Möglichkeit herauszufinden, welcher Code die Ausnahme verursacht, oder zumindest einige weitere Details herauszufinden? FileNotFoundException?

War es hilfreich?

Lösung

Erstens, hier ist, was in dieser WER-Spur steht:

<Parameter0>rstvshowtracker.exe</Parameter0> - your exe
<Parameter1>1.0.3842.33258</Parameter1> - version of your exe
<Parameter2>4c374e79</Parameter2> - exe timestamp
<Parameter3>mscorlib</Parameter3> - assembly / module
<Parameter4>4.0.0.0</Parameter4> - assembly version
<Parameter5>4ba1da6f</Parameter5> - assm timestamp
<Parameter6>1620</Parameter6> - methodDef token of faulting method 
<Parameter7>14</Parameter7> - IL offset of faulting instruction
<Parameter8>System.IO.FileNotFoundException</Parameter8> - exception

Sie könnten WinDBG und SOS verwenden, um herauszufinden, was diese Methode ist (z. B.1620).Sehen Sie sich hier das Beispiel an, wie es geht:http://blogs.msdn.com/b/oanapl/archive/2009/01/30/windows-error-reporting-wer-and-clr-integration.aspx

...Alternativ können Sie das unhandledException-Ereignis in Ihrer Anwendung einbinden und den Ausnahme-Stack-Trace in einer Protokolldatei ausdrucken, um zu sehen, was das Problem verursacht hat;z.B.

static void MyHandler(object sender, UnhandledExceptionEventArgs args) 
{
   Exception e = (Exception) args.ExceptionObject;
   // print out the exception stack trace to a log
}

public static void Main() 
{
   AppDomain currentDomain = AppDomain.CurrentDomain;
   currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top