我正在使用 GetAsync 方法从服务器检索响应。以下代码在前两次迭代中运行良好,然后出现错误消息“任务已取消”。我在网上搜索但没有找到任何解决方法。由于死锁,有人建议使用 async/await,但我认为这不是问题所在,而且它也不起作用。
任何想法是什么导致了异常以及如何防止它?
编辑:我已经完成了这个问题,并尝试使用前面提到的 async/await 并将默认超时更改为 5 分钟而不是 100 秒。他们都没有工作。我的猜测是来自 Netstat 日志的其他内容,我看到端口处于 TIME_WAITING 状态。
注意:我使用的是 System.Net.Http 4.3.4 版本和 .NET 4.6.1。
using System;
using System.Net.Http;
namespace Main
{
class Program
{
static void Main(string[] args)
{
var client = new HttpClient();
string url = "https://www.google.com";
for (int i = 0; i < 10; i++)
{
var response = client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead).GetAwaiter().GetResult();
Console.WriteLine(response.StatusCode);
}
Console.ReadKey();
}
}
}