通过HttpClient抛出错误的真正快速的PostAsync调用

问题描述

我正试图对我的服务进行压力测试。为此,我打电话

await client.PostAsync(url,content);

通过那里的普通电话就可以了。但是当我努力解决时,上面的客户端调用(发布到服务)开始失败。

起初它会出现此错误

System.Threading.Tasks.TaskCanceledException:任务已取消。

它也会给出此错误

System.Net.sockets.socketException(10055):无法执行套接字操作,因为系统缺少足够的缓冲区空间或队列已满。

然后短时间后,错误变为:

System.Net.sockets.socketException(10048):每个套接字地址(协议/网络地址/端口)通常仅允许使用一种。

我的代码是NuGet程序包的一部分,该程序包将在常规.Net Framework应用程序(WCF,WPF,ASP.NET等)和较新的ASP.Net Core 3.1中运行。

因此,我实际上并不容易访问.Net Core DI框架。 (我真的不想为普通的.Net Framework制作它,也不想为ASP.NET Core 3.1应用程序制作另一个DI实例。)

所以我这样创建HttpClient

private static readonly HttpClient client = new HttpClient{Timeout = TimeSpan.FromSeconds(25)};

我是否需要对所有HttpClient进行其他配置才能处理很多非常快的呼叫(大约可以进行25万次)?

或者是否有某种方法可以检测到HttpClient处于饱和状态,然后等待其处于更好的状态?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)