7

웹 API에서 System.Net.Http.HttpClient를 사용하여 PostAsync 메서드를 호출하려고합니다. 나는 다음과 같은 오류가 발생합니다 :PostAsync Web Api에서의 HttpClient 오류 - System.AggregateException "작업이 취소되었습니다."

System.AggregateException "A task was canceled."

작업 :

Id = 1, Status = System.Threading.Tasks.TaskStatus.Canceled, Method = "{null}", Result = "{Not yet computed}"

코드 : 나는 responseTask 동 기적으로 실행하는 방법을 강제 가정

using (HttpClientHandler handler = new HttpClientHandler()) 
{ 
    handler.Credentials = new NetworkCredential("MyUsername", "[email protected]"); 

    using (HttpClient client = new HttpClient(handler)) 
    { 
     var postData = new List<KeyValuePair<string, string>>(); 
     postData.Add(new KeyValuePair<string, string>("status", "Hello world")); 

     HttpContent content = new FormUrlEncodedContent(postData); 

     var responseTask = client.PostAsync(url, content).ContinueWith(
      (postTask) => 
      { 
       postTask.Result.EnsureSuccessStatusCode(); 
      }); 
    } 

?

ASP.NET이 아니라 WPF 응용 프로그램입니다.

답변

3

로그 :

0

두 번째 작업도 비동기로 실행되지만 첫 번째 작업과 연결되므로 첫 번째 작업이 실행 된 후에 만 ​​동기화됩니다.

첫 번째 작업인 것처럼 보임 - PostAsync가 오류와 함께 실행되었습니다. here 같은 예를 들어 AggregateException 에서 내부 예외 컬렉션에서 자세한 내용을 TPL 집계 예외를 잡아 찾기 위해 시도하거나 TaskScheduler.UnobservedTaskException에 가입하고 예외를 얻기 위해 확장 메서드를 작성하려고 할 수 디버깅의 관점에서이 모든 예외

10

이 동일한 오류가 발생하여 내 HttpClient가 시간 초과되었습니다. 기본 제한 시간은 100 초입니다. 나는 HttpClient의 생성에 다음을 추가했다.

HttpClient httpClient = new HttpClient(); 
httpClient.Timeout = TimeSpan.FromMinutes(10); 

관련 문제