我在我的wcf項目中使用後臺工作來處理異步Web服務。在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似乎不是我提出的原始異常!事實上,我不能將它轉換爲WebFaultException,並且它忽略了我作爲參數傳遞的'MyAsyncResult'對象。你有沒有這種問題?
有'e.Error'是'InnerException'嗎? – JeffRSon
您是否真的檢查過e.Error確實包含哪種類型的對象? –
@JeffRSon e.Error as no ExceptionException – Nicolas