“ await HTTPClient.GetAsync”从未完成

Ste*_*ing 0 asp.net async-await .net-4.5.2

我在.Net Core中使用了此代码。我们意识到Core暂时不适合我们,因此我一直在.Net 4.5.2中进行重构,当我打电话时

HttpResponseMessage response = await client.GetAsync(passedlURI);

它只是继续无限期地思考。我已将其指向我的API的本地主机版本,并确认API正在读取标头并正确返回我的数据,我已使用Postman确认实时API和localhost API都向我发送了正确的数据。到目前为止,这是我的代码:

在此处输入图片说明

Kev*_*sse 6

确保.ConfigureAwait(false)与您的每个人一起使用await。同步等待内部等待当前同步上下文的任务是ASP.NET中死锁的众所周知原因。

例如,代替:

await GetAPIAsync();
Run Code Online (Sandbox Code Playgroud)

做:

await GetAPIAsync().ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)

当然,如果您不同步等待开始的任务,那就更好了。

在ASP.NET Core上不会发生此问题,因为它没有使用自定义同步上下文。