2

Я зарегистрировал глобальные Exceptionhandlers в моем приложении (C#, WPF, .NET4) при запуске-подпрограмме по следующему образу:Global ExceptionHandler не наловить исключения (например StackOverflowException)

AppDomain.CurrentDomain.UnhandledException += (sender, args) => HandleException(args.ExceptionObject as Exception); 
Application.Current.DispatcherUnhandledException += (sender, args) => { 
    HandleException(args.Exception); 
    args.Handled = true; 
}; 

Где HandleException() регистрирует Исключение и показывает MessageBox с некоторой дополнительной информацией.

Теперь время от времени происходят сбои моего приложения на некоторых компьютерах-клиентах, где HandleException() не вызывается. Windows, показывает следующее сообщение:

enter image description here

В WindowsEventLog, я получаю следующие данные:

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 

Что может Я делаю то, что могу справиться с Исключением (для среднего разума для получения stacktrace для анализа, где происходит исключение)?

ответ

2

Некоторые исключения не могут быть пойманы, даже не AppDomain.UnhandledException. Потому что они слишком противны, чтобы позволить управляемому коду продолжать работать.

StackOverflowException - это такой сердечный приступ, достаточно печально известный, чтобы дать сайту название. Недостаточно пространства стека для выполнения общих обязанностей по выполнению управляемого кода, например, запуска джиттера. ExecutionEngineException - еще один, вызванный уничтоженной сборкой мусора и сборкой в ​​.NET 4.0 и выше.

Так что нет, шоу закончилось, и диалог WER и запись журнала событий Windows - это все, что осталось посмотреть. SO всегда вызвано ошибкой, вам нужно исправить это.

+0

Это. Подумайте об этом так: если бы вы могли поймать переполнение стека, каким образом вы могли бы справиться с этим? – JerKimball

+0

Спасибо за ваше объяснение. Я знаю, что это ошибка - я ищу способ определить, где происходит ошибка. Авария не воспроизводится, и она возникает только на двух компьютерах клиентов время от времени, когда они нажимают на разные части приложения. Из-за этого я ищу метод для получения информации, какие методы задействованы в потоке stackoverflow и где это происходит. Я не буду восстанавливать приложение - только эту информацию, чтобы исправить ошибку. – BennoDual

+0

http://stackoverflow.com/questions/4052770/deciphering-the-net-clr20r3-exception-parameters-p1-p10/4053325#4053325 –

Смежные вопросы