Я использую фоновых работников в моем проекте wcf для обработки асинхронных веб-сервисов.Получите оригинальное поднятое исключение в RunWorkerCompletedEventHandler
Вот как я инициализация работника:
worker.DoWork += new DoWorkEventHandler(DoWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(RunWorkerCompleted);
worker.RunWorkerAsync();
Для обработки ошибок, я должен вызывать исключения в моем методе DoWork ... Как это:
throw new WebFaultException<MyAsyncResult>(
new MyAsyncResult("Description of the error"),
HttpStatusCode.InternalServerError
);
Наконец, я получаю это исключение в RunWorkerCompleted:
void RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (!(e.Error == null))
{
< Do something with e.Error >
}
else
...
}
Моя проблема:
e.Error Я получаю, похоже, не исключение orignal, которое я поднял! В самом деле, я не могу использовать его как исключение WebFaultException, и он пропускает объект «MyAsyncResult», который я передал как параметр. У кого-нибудь из вас была такая проблема?
Имеет ли 'e.Error'' InnerException'? – JeffRSon
Действительно ли вы проверили, какой тип объекта e.Error содержит? –
@JeffRSon e.Error as no InnerException – Nicolas