I have registered global Exceptionhandlers in my Application (C#, WPF, .NET4) at the startup-routine on the following way:
AppDomain.CurrentDomain.UnhandledException += (sender, args) => HandleException(args.ExceptionObject as Exception);
Application.Current.DispatcherUnhandledException += (sender, args) => {
HandleException(args.Exception);
args.Handled = true;
};
Where HandleException() does logging the Exception and showing a MessageBox with some additional information.
Now, there are from time to time crashes of my application on some customer machines, where HandleException() is not called. Windows is showing the following message:
In the WindowsEventLog, I get the following entries:
Entry1:
Name der fehlerhaften Anwendung: proconact.exe, Version: 1.0.0.1365, Zeitstempel: 0x511531df
Name des fehlerhaften Moduls: PresentationFramework.ni.dll, Version: 4.0.30319.588, Zeitstempel: 0x504db27d
Ausnahmecode: 0xc00000fd
Fehleroffset: 0x002ef05b
ID des fehlerhaften Prozesses: 0x1bec
Startzeit der fehlerhaften Anwendung: 0x01ce0b5dce4030a6
Pfad der fehlerhaften Anwendung: C:\Program Files (x86)\proconact_sck\proconact.exe
Pfad des fehlerhaften Moduls: C:\windows\assembly\NativeImages_v4.0.30319_32\PresentationFramewo#\c627e9b7f10b01db43645284e601f255\PresentationFramework.ni.dll
Berichtskennung: d8d69f94-777a-11e2-b4b0-b4b52f2aad4f
Entry2:
Fehlerbucket 3482664247, Typ 5
Ereignisname: CLR20r3
Antwort: Nicht verfügbar
CAB-Datei-ID: 0
Problemsignatur:
P1: proconact.exe
P2: 1.0.0.1365
P3: 511531df
P4: PresentationFramework
P5: 4.0.0.0
P6: 504db27d
P7: 329d
P8: 0
P9: System.StackOverflowException
P10:
Angefügte Dateien:
d:\Temp\WER6E9F.tmp.WERInternalMetadata.xml
Diese Dateien befinden sich möglicherweise hier:
C:\Users\roger\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_proconact.exe_b0fabce1f86d1f843de5b5b4692a3e8ecd928_2c77f03d
Analysesymbol:
Es wird erneut nach einer Lösung gesucht: 0
Berichts-ID: d8d69f94-777a-11e2-b4b0-b4b52f2aad4f
Berichtstatus: 0
What can I do that I can handle the Exception (for the meanreason to get the stacktrace for analysis where the exception occurs)?
Some exceptions cannot be caught, not even by AppDomain.UnhandledException. Because they are too nasty to permit managed code to keep running.
StackOverflowException is heart attack like that, infamous enough to give this web site its name. There is not enough stack space left to do common managed code execution duties, like running the jitter. ExecutionEngineException is another one, triggered by a destroyed garbage-collected heap and uncatchable in .NET 4.0 and up.
So no, the show is over and the WER dialog and the Windows event log entry is all that's left to look at. SO is always caused by a bug, you'll need to fix it.