我有一個使用基於任務的操作的WCF
代理。我正在製作一個包含在Parallel.ForEach()
中的方法調用。我所調用的服務方法是一個緩慢/長時間運行的操作,偶爾會返回異常。我無法在我的catch塊中捕捉到這些異常 - 從未碰到過塊。我能夠捕捉異常的唯一方法是使用同步服務方法。如何使用異步服務方法捕獲異常?處理過程中是否返回異常?WCF基於任務的操作異常處理和TPL
Parallel.ForEach(campaignResults.SelectMany(cd => cd), result =>
{
try
{
retList.TryAdd(client.SubmitRequestAsync(result.id, requestDetail), item.id);
}
catch (AggregateException ex)
{
// NEVER HIT ON EXCEPTION
foreach (Exception e in ex.InnerExceptions)
{
Trace.TraceError(e.ToString());
}
}
}
'FaultException'應該拋出,不應該?你是否試圖捕捉常見的「例外」? –
@IlyaChumakov ...是的,我確實試圖捕捉異常,並不起作用。 –