Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpClient:“;“资源暂时不可用”;异步发送请求时_C#_Rest_.net Core - Fatal编程技术网

C# HttpClient:“;“资源暂时不可用”;异步发送请求时

C# 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

我已经编写了一个应用程序来生成RESTAPI端点的负载。从我的本地机器同步发送请求可以达到15转/秒左右。我的想法是异步发送请求,当它工作时,我得到的Rps比开始时多2-3倍

我遇到的问题是,异步发送请求通常(大约80%的时间)会在HttpClient
资源暂时不可用的情况下引发异常,内部异常为

{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如果我没记错的话,我在制作原型时打开了一堆插座。重新启动我的机器修复了它,从那以后我再也没有看到过这个问题。