如何解决通过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 举报,一经查实,本站将立刻删除。