ben belirli koşullar altında çağrı Diğer taraftanAggregateException ve WCF
, ben mantıklı bir FaultException (alıyorum aracılığıyla gerçekleşmiş tüm sorunları ile, bir AggregateException döndüren bir WCF hizmeti arıyorum çünkü WCF sadece bu istisnaları anlar). Sorun şu ki, sözleşme detayı bir istisna değildir. Varsayılan olarak, WCF, AggregateException özel durumlar listesi (InnerExceptions) için ilk özel durumu alır ve bunu içine alır. Yani müşteri tarafında, sadece listenin ilk istisnasını alıyorum. biraz araştırdıktan sonra, ben aşağıdaki yaptı:
Eklendi bu sözleşme servis çağrı üzerine Sonra
[FaultContract(typeof(AggregateException))]
için ..
try
{
BaseService.Blabla.Delete(item);
}
catch (AggregateException ex)
{
throw new FaultException<AggregateException>(ex);
}
Ama bu diğer tarafta, üzerinde
:catch (FaultException<AggregateException> ex)
{
string msg = string.Empty;
foreach (var innerException in ex.Detail.InnerExceptions)
{
msg += innerException + Environment.NewLine;
}
MessageBox.Show(msg);
}
catch (Exception ex)
{
throw ex;
}
Bunun yerine özel durum catch deyimine giriliyor, d (4 dakika geçmesine asla ben bağlantı sorunu yok çünkü, belli ki bazı rasgele hata olduğunu ve bu hemen döner ayıklama) böyle bir hata alıyorum:
The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:03:59.9939994'. : An existing connection was forcibly closed by the remote host
i eksik?
aslında atılmış hangi istisna belirlemek için debugger atlama denediniz mi? –