7

Ich versuche, die PostAsync-Methode mit System.Net.Http.HttpClient über die Web-API aufzurufen. Ich erhalte den folgenden Fehler:PostAsync HttpClient Fehler mit Web API - System.AggregateException "Eine Aufgabe wurde abgebrochen."

System.AggregateException "A task was canceled."

Aufgabe:

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

Code:

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(); 
      }); 
    } 

ich die responseTask übernehmen wird das Verfahren zwingen synchron zu laufen?

Es ist eine WPF-Anwendung, nicht ASP.NET.

Antwort

3

In Bezug auf das Debuggen Sie eine Erweiterungsmethode versuchen könnte das Schreiben der Ausnahme zu erhalten :

0

Nicht synchron, zweite Task wird ebenfalls async ausgeführt, aber mit erster Task verkettet, also erst nach der ersten Task ausgeführt.

Scheint die erste Aufgabe zu sein - PostAsync wurde mit Fehler ausgeführt. Versuchen TPL aggregierten Ausnahmen zu fangen und mehr Details in innere Ausnahmen Sammlung von AggregateException Zum Beispiel wie here oder abonnieren Sie TaskScheduler.UnobservedTaskException und melden Sie finden dort alle Ihre Ausnahmen

10

Ich bekam diesen gleichen Fehler und verfolgte es bis zu meinem HttpClient Timing Out. Das Standard-Timeout beträgt 100 Sekunden. Ich habe Folgendes zum Erstellen des HttpClient hinzugefügt.

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