"await HTTPClient.GetAsync" 从未完成
"await HTTPClient.GetAsync" never completing
我让这段代码在 .Net Core 中工作。我们意识到 Core 现在不是最适合我们的,所以我一直在 .Net 4.5.2 中重构,当我调用
HttpResponseMessage response = await client.GetAsync(passedlURI);
它只是无限期地继续思考。我已将其指向 API 的本地主机版本并确认 API 正在读取 header 并正确返回我的数据,我已使用 Postman 确认实时 API 和 localhost API 向我发送了正确的数据。到目前为止,这是我的代码:
确保每个 await
都使用 .ConfigureAwait(false)
。同步等待内部等待当前同步上下文的任务是 ASP.NET.
中众所周知的死锁原因
例如,而不是:
await GetAPIAsync();
做:
await GetAPIAsync().ConfigureAwait(false);
当然,如果你不同步等待一个任务开始就更好了。
ASP.NET Core 上没有出现此问题,因为它不使用自定义同步上下文。
我让这段代码在 .Net Core 中工作。我们意识到 Core 现在不是最适合我们的,所以我一直在 .Net 4.5.2 中重构,当我调用
HttpResponseMessage response = await client.GetAsync(passedlURI);
它只是无限期地继续思考。我已将其指向 API 的本地主机版本并确认 API 正在读取 header 并正确返回我的数据,我已使用 Postman 确认实时 API 和 localhost API 向我发送了正确的数据。到目前为止,这是我的代码:
确保每个 await
都使用 .ConfigureAwait(false)
。同步等待内部等待当前同步上下文的任务是 ASP.NET.
例如,而不是:
await GetAPIAsync();
做:
await GetAPIAsync().ConfigureAwait(false);
当然,如果你不同步等待一个任务开始就更好了。
ASP.NET Core 上没有出现此问题,因为它不使用自定义同步上下文。