Exception: System.AggregateException: 發生一個或多個錯誤。 ---> System.Threading.Tasks.TaskCanceledException: 已取消一個任務。
System.Web.Http.Dispatcher.HttpRoutingDispatcher.SendAsync(System.Net.Http.HttpRequestMessage request,
System.Threading.CancellationToken cancellationToken) >
System.Net.Http.HttpMessageInvoker.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) >
System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(System.Net.Http.HttpRequestMessage request,
System.Threading.CancellationToken cancellationToken) > System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start() >
System.Web.Http.Dispatcher.HttpControllerDispatcher+<SendAsync>d__1.MoveNext() >
System.Web.Http.Controllers.ActionFilterResult.ExecuteAsync() >
System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start() >
System.Web.Http.Controllers.ActionFilterResult+<ExecuteAsync>d__2.MoveNext() >
System.Web.Http.Controllers.ApiControllerActionInvoker.InvokeActionAsyncCore(System.Web.Http.Controllers.HttpActionContext actionContext,
System.Threading.CancellationToken cancellationToken) > System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start() >
System.Web.Http.Controllers.ApiControllerActionInvoker+<InvokeActionAsyncCore>d__0.MoveNext() >
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(System.Web.Http.Controllers.HttpControllerContext controllerContext,
System.Collections.Generic.IDictionary`2[System.String,System.Object] arguments, System.Threading.CancellationToken cancellationToken) >
System.Web.Http.Controllers.ReflectedHttpActionDescriptor+ActionExecutor+<>c__DisplayClass12.<GetExecutor>b__8(System.Object instance, System.Object[] methodParameters) >
?.lambda_method(System.Runtime.CompilerServices.Closure , System.Object , System.Object[] ) >
今天查看網站日誌時,發現不少這種錯誤信息。
訪問一個頁面時,AJAX 請求 ASP.NET Web API 。多次點擊刷新,出錯。
原因:頁面加載 =》 ajax 觸發 web api =》 頁面刷新 =》web api 的任務被取消 ; web api 是異步編程, 任務取消時,會觸發 AggregateException 導常。
日誌記錄時,遇到 AggregateException 時,直接忽略。