删除任务/异步代码后,我收到以下异常:

{“消息”:“发生了错误 . ”,“ExceptionMessage”:“发生了一个或多个错误 . ”,“ExceptionType”:“System.AggregateException”,“StackTrace”:“at System.Threading.Tasks.Task1 .GetResultCore(Boolean waitCompletionNotification)\ r \ n位于F:\ TFS \ Orian360 Res \ ABB.API \中的ABB.API.Customers.DynamicsCRM.Accounts.BusinessLogic.AccountService.GetAccount(字符串查询,HttpRequestHeaders标头) Dev \ Customers \ DynamicsCRM \ Accounts \ BusinessLogic \ AccountService.cs:第26行\ r \ n位于F:\ TFS \中的ABB.API.Customers.DynamicsCRM.Accounts.Web.AccountsController.GetAccount() \ Orian360 Res \ ABB.API \ Dev \ Customers \ DynamicsCRM \ Accounts \ Web \ Controllers \ AccountsController.cs:line 27 \ r \ n at lambda_method(Closure,Object,Object [])\ r \ n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor . <> c__DisplayClass10 . <GetExecutor> b__9(Object instance,Object [] methodParameters)\ r \ n在System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync( HttpControllerContext con trollerContext,IDictionary2参数,CancellationToken cancellationToken)\ r \ n ---从抛出异常的上一个位置开始的堆栈跟踪结束--- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\ r \ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\ r \ n在System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()\ r \ n ---从上一个位置开始的堆栈跟踪异常被抛出--- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\ r \ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\ r \ n在System.Web上.Http.Filters.ActionFilterAttribute.d__5.MoveNext()\ r \ n ---从抛出异常的上一个位置开始的堆栈跟踪结束--- \ r \ n在System.Web.Http.Filters.ActionFilterAttribute.d__5 . MoveNext()\ r \ n ---从抛出异常的上一个位置开始的堆栈跟踪结束--- \ r \ n在System.Runtime System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()\ r \ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\ r \ n的.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\ r \ n \ n ---从抛出异常的上一个位置开始的堆栈跟踪结束---在System.Runtime.CompilerServices.TaskAwaiter的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\ r \ n中的\ r \ n . System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()\ r \ n中的HandleNonSuccessAndDebuggerNotification(任务任务)\ r \ n \ n ---从抛出异常的上一个位置开始的堆栈跟踪结束--- \ r \ n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\ r \ n在System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\ r \ n ()“,”InnerException“:{”消息“:”发生错误 . “,”ExceptionMessage“:”发生错误发送请求 . “,”ExceptionType“:”System.Net.Http.HttpRequestException“,”StackTrace“:null,”InnerException“:{”消息“:”发生错误 . “,”ExceptionMessage“:”远程服务器返回错误:(401)Unauthorized . “,”ExceptionType“:”System.Net.WebException“,”StackTrace“:”在System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)\ r \ n在System.Net上.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)“,”InnerException“:{”Message“:”发生错误 . “,”ExceptionMessage“:”目标主体名称不正确“,”ExceptionType“:”System.ComponentModel .Win32Exception“,”StackTrace“:”在System.Net.NTAuthentication.GetOutgoingBlob(Byte [] incomingBlob,Boolean throwOnError,SecurityStatus&statusCode)\ r \ n在System.Net.NTAuthentication.GetOutgoingBlob(String incomingBlob)\ r \ n at System.Net.NegotiateClient.DoAuthenticate(String challenge,WebRequest webRequest,ICredentials credentials,Boolean preAuthenticate)\ r \ n在System.Net.Negoti ateClient.Authenticate(字符串质询,WebRequest webRequest,ICredentials凭证)\ r \ n在System.Net.AuthenticationManagerDefault.Authenticate(字符串质询,WebRequest请求,ICredentials凭证)\ r \ n在System.Net.AuthenticationState.AttemptAuthenticate(HttpWebRequest httpWebRequest) ,ICredentials authInfo)\ r \ n atSystem.Net.HttpWebRequest.CheckResubmit上的System.Net.HttpWebRequest.CheckResubmitForAuth()\ r \ n(异常&e,布尔和禁用上载)“}}}}

The code in its previous state worked without issue:

public async Task<HttpResponseMessage> GetAccount(string query)
        {

            var response = Client.Instance.GetAsync(Client.Instance.BaseAddress + query);
            var responseType = response.Result.StatusCode;
            if (responseType == HttpStatusCode.NotFound)
            {
                return new HttpResponseMessage
                {
                    StatusCode = responseType
                };
            }
            return await response;
        }

I then updated it to be non-async:

public HttpResponseMessage GetAccount(string query, HttpRequestHeaders headers)
    {
        var requestUri = new Uri(Client.Instance.BaseAddress + query);
        var request = new HttpRequestMessage
        {
            RequestUri = requestUri
        };

        foreach (var header in headers)
        {
            request.Headers.Add(header.Key, header.Value);
        }

        var response = Client.Instance.SendAsync(request).Result;
        return response;
    }

What is causing this exception? 它似乎与async / async有关?

控制器定义如下:

[HttpGet]
    [Route("accounts({id:guid})")]
    [Route("accounts")]
    public Task<HttpResponseMessage> GetAccount()
    {
        var query = Request.RequestUri.AbsolutePath.Split('/').Last() + Request.RequestUri.Query;
        var response = _accountService.GetAccount(query, Request.Headers);
        return response;
    }