2014-10-08 3 views
0

비동기 메서드 (구체적으로 Microsoft.ServiceBus.Messaging.QueueClient.SendAsync())를 호출하고 해당 예외를 처리 할 수 ​​있기를 원합니다. 내가 건너 한ContinueWith의 예외 처리가 무한 호출됩니다.

하나의 가능성은 다음과 같습니다

_queueClient.SendAsync(message).ContinueWith((t) => 
{ 
    Debug.WriteLine("Exception: " + t.Exception.InnerException.GetType().Name); 
}, TaskContinuationOptions.OnlyOnFaulted); 

는 그러나 ContinueWith는 무한히 호출되는 것 :

Exception: UnauthorizedAccessException 
Exception: UnauthorizedAccessException 
Exception: UnauthorizedAccessException 
Exception: UnauthorizedAccessException 
Exception: UnauthorizedAccessException 
Exception: UnauthorizedAccessException 
...................................... 
......etc 

이런 일이 발생하는 이유 모든 아이디어를 어떻게 해결하기 위해?

감사

+0

이 문제를 해결하기위한 조언이 있으십니까? –

+0

continuewith의 유일한 오류 부분은 상위 작업에서 예외가 발생하는 경우에만 실행된다는 의미이므로 고아가 될 것이라고 생각하지 않습니다. –

+0

여러번 본다면, 각각에 대해'SendAsync'에 대한 호출이 실패했음을 의미합니다. 그것은 간단합니다. – Servy

답변

0

나는 다음의 Debug.WriteLine을 따기와 루프의 원인이 된 TraceListener에서 내 보내기를 호출했다.

의미는 TraceListener가 추적을 수신하지만 디버그 메시지도 수신하는 것입니다.