Я пытаюсь зарегистрировать мои исключения с помощью AppDomain.CurrentDomain.UnhandledException.
AppDomain.CurrentDomain.UnhandledException += AppDomainUnhandledException;
public static void AppDomainUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
HandleException(e.ExceptionObject as Exception);
}
Когда я получаю исключение на сервере, я получу ошибку в клиенте во время отладки, но событие, подключенное к AppDomain.CurrentDomain.UnhandledException, никогда не будет запущено.
Сервер:
[ServiceBehavior(IncludeExceptionDetailInFaults=true)]
public class Service : IService
{
public string GetError()
{
throw new ApplicationException();
}
}
Клиент:
public void GetError()
{
this.service.BeginGetError(OnGetErrorCompleted, null);
}
public void OnGetErrorCompleted(IAsyncResult result)
{
var value = this.service.EndGetError(result);
}
Это не работает, если я не использую Distpacher.BeginInvoke ..
public void OnGetErrorCompleted(IAsyncResult result)
{
this.Dispatcher.BeginInvoke((Action)(() =>
{
var value = this.service.EndGetError(result);
}));
}
Кто-нибудь знает почему ??
Я думал, что AppDomain.CurrentDomain.UnhandledException будет запущен в случае исключения в ЛЮБОМ потоке! : S