0

.NET HttpClient 并行 API 调用并随机抛出异常:现有连接被远程主机强行关闭。将内容复制到流时出错。

远程服务:Springboot。

客户端环境:.NET Framework 4.8,控制台应用程序。

问题是随机抛出的,但如果设置

httpClient.DefaultRequestHeaders.ConnectionClose = true;

问题消失了,但单次调用性能下降,无法利用 TCP 连接。如何解决这个问题?这似乎是一个库级别的错误。

    static void Main(string[] args)
    {

        RunTask().GetAwaiter().GetResult();
    }


    public async static Task RunTask()

    {
        HttpClient client = new HttpClient();

        for (int j = 0; j < 50; j++)
        {
            List<Task> tasks = new List<Task>();
            for (int i = 0; i < 30; i++)
            {
                tasks.Add(LoadAsync(client));
            }
            await Task.WhenAll(tasks);
            tasks.ForEach(t => t.GetAwaiter().GetResult());
        }


    }

    public async static Task<string> LoadAsync(HttpClient httpClient)
    {
        return await httpClient.GetStringAsync(API_URL);
    }
4

0 回答 0