Мне нужно обработать исключение в событии Application_UnhandledException файла App.xaml.cs. Я получаю объект Exception, используя e.ExceptionObject. Теперь мне нужно отправить сведения об исключении на мой сервер с помощью службы WCF с помощью WebClient.
Всякий раз, когда я отправляю запрос службе WCF с помощью WebClient, он отправляет запрос, но происходит событие обратного вызова, например, webClient_UploadStringCompleted никогда не выполняется. Я прочитал, что исключения обрабатываются в отдельном потоке и т. Д.
То, что я уже пробовал, но не удалось:
- ThreadStart
- Тема
- App.Current.RootVisual.Dispatcher.BeginInvoke
- RootFrame.Dispatcher.BeginInvoke
- System.Windows.Deployment.Current.Dispatcher.BeginInvoke
- Deployment.Current.Dispatcher.BeginInvoke
Кто-нибудь может рассказать, как отправить подробности ошибки из Application_UnhandledException в службу WCF с WebClient?
Код:
// Код для выполнения в необработанных исключениях
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
e.Handled = true;
// Option 1
Thread thread = new Thread(() => MainPage.HandleException(e.ExceptionObject));
thread.Start();
ThreadStart start = new ThreadStart(NonUIWork);
// Option 2
Thread thread = new Thread(start);
thread.Start(e.ExceptionObject);
// Option 3
Deployment.Current.Dispatcher.BeginInvoke(delegate { MainPage.HandleException(e.ExceptionObject); });
// Option 4
App.Current.RootVisual.Dispatcher.BeginInvoke(MainPage.HandleException, e.ExceptionObject);
// Option 5
RootFrame.Dispatcher.BeginInvoke(() => { MainPage.HandleException(e.ExceptionObject); });
// Option 6
MainPage.HandleException(e.ExceptionObject);
}
В методе MainPage.HandleException я отправляю сведения об исключении в службу WCF с объектом WebClient. Но функция обратного вызова WebClient (webClient_UploadStringCompleted) никогда не выполняется. Похоже, что поток, в котором выполняется событие Application_UnhandledException, немедленно приостанавливается.