AggregateException is throwing while waiting for PostAsJsonAsync

匿名 (未验证) 提交于 2019-12-03 08:44:33

问题:

AggregateException is throwing while waiting for API post to complete how i could fix this?

My API call is similar like this

using (var httpClient = new HttpClient()) {     httpClient.BaseAddress = new Uri(workflowUrl);     var task = httpClient.PostAsJsonAsync("api/apiname/execute/", executeModel)                              .ContinueWith(x => x.Result.Content.ReadAsAsync<bool>().Result);      Task continuation = task.ContinueWith(x =>     {         bool response = x.Result;     });     continuation.Wait();   } 

I am getting Exception given below while waitng for POST to complete.

  System.AggregateException was caught   Message=One or more errors occurred.   Source=mscorlib   StackTrace:        at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)        at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)        at System.Threading.Tasks.Task.Wait()        at    InnerException: System.AggregateException        Message=One or more errors occurred.        Source=mscorlib        StackTrace:             at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)             at System.Threading.Tasks.Task`1.get_Result()             at              at System.Threading.Tasks.Task`1.<>c__DisplayClass17.<ContinueWith>b__16(Object obj)             at System.Threading.Tasks.Task.InnerInvoke()             at System.Threading.Tasks.Task.Execute()        InnerException: System.AggregateException             Message=One or more errors occurred.             Source=mscorlib             StackTrace:                  at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)                  at System.Threading.Tasks.Task`1.get_Result()                  at WebUI.ListController.<ListRepeater_ItemCommand>b__f(Task`1 x) in PostAsJsonAsync:line 741                  at System.Threading.Tasks.Task`1.<>c__DisplayClass1a`1.<ContinueWith>b__19()                  at System.Threading.Tasks.Task`1.InvokeFuture(Object futureAsObj)                  at System.Threading.Tasks.Task.InnerInvoke()                  at System.Threading.Tasks.Task.Execute()             InnerException: System.Threading.Tasks.TaskCanceledException                  Message=A task was canceled.                  InnerException: 

回答1:

Are you posting a big piece of data ? Once I had a similar issue. I believe the underlying problem is occasional timeout due to bandwidth issues. I tried getting the task and manually waiting on it then checking .IsFaulted and .IsCancelled but the .Result throws AggregateException / TaskCancelledException.

Maybe you should try to increase HttpClient.Timeout property which is 100 sec by default ?



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!