C# HttpClient:“;“资源暂时不可用”;异步发送请求时
我已经编写了一个应用程序来生成RESTAPI端点的负载。从我的本地机器同步发送请求可以达到15转/秒左右。我的想法是异步发送请求,当它工作时,我得到的Rps比开始时多2-3倍 我遇到的问题是,异步发送请求通常(大约80%的时间)会在HttpClientC# HttpClient:“;“资源暂时不可用”;异步发送请求时,c#,rest,.net-core,C#,Rest,.net Core,我已经编写了一个应用程序来生成RESTAPI端点的负载。从我的本地机器同步发送请求可以达到15转/秒左右。我的想法是异步发送请求,当它工作时,我得到的Rps比开始时多2-3倍 我遇到的问题是,异步发送请求通常(大约80%的时间)会在HttpClient资源暂时不可用的情况下引发异常,内部异常为 {System.Net.Sockets.SocketException (11): Resource temporarily unavailable at System.Net.Http.ConnectH
资源暂时不可用的情况下引发异常,内部异常为
{System.Net.Sockets.SocketException (11): Resource temporarily unavailable at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)}
现在,对于我的API客户端,我有一个静态HttpClient和一个SendRequestsAsync方法
public async Task<RestResponse[]> SendRequestsAsync(string apiUrl, int count)
{
var tasks = new Task<RestResponse>[count];
for (int i = 0; i < count; i++)
{
tasks[i] = SendRequest(apiUrl);
}
await Task.WhenAll(tasks);
return tasks.Select(x => x.Result).ToArray();
}
public异步任务SendRequestsAsync(字符串apiUrl,int count)
{
var tasks=新任务[计数];
for(int i=0;ix.Result).ToArray();
}
我的假设是,我的插座快用完了,但我不知道从这里可以走到哪里。有没有一种方法可以在一台机器上运行尽可能多的请求,而不会遇到此异常或等待可用套接字的请求 你解决你的问题了吗?@LilacBlue如果我没记错的话,我在制作原型时打开了一堆插座。重新启动我的机器修复了它,从那以后我就再也没有看到这个问题。你解决了你的问题吗?@LilacBlue如果我没记错的话,我在制作原型时打开了一堆插座。重新启动我的机器修复了它,从那以后我再也没有看到过这个问题。