Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
.net 在执行过程中,如何确定来自异步httpclient的并发请求数?_.net_Visual Studio 2012_.net 4.5_Async Await_Dotnet Httpclient - Fatal编程技术网

.net 在执行过程中,如何确定来自异步httpclient的并发请求数?

.net 在执行过程中,如何确定来自异步httpclient的并发请求数?,.net,visual-studio-2012,.net-4.5,async-await,dotnet-httpclient,.net,Visual Studio 2012,.net 4.5,Async Await,Dotnet Httpclient,我有一个简单的控制台应用程序,如下所示: private static StringBuilder sb = new StringBuilder(); private static HttpClient client = new HttpClient(); private static async Task<HttpStatusCode> AccessTheWebAsync() { HttpResponseMe

我有一个简单的控制台应用程序,如下所示:

    private static StringBuilder sb = new StringBuilder();
    private static HttpClient client = new HttpClient();

    private static async Task<HttpStatusCode> AccessTheWebAsync()
    {            
        HttpResponseMessage response = await client.GetAsync("http://www.google.com").ConfigureAwait(false);
        return response.StatusCode;
    }

    static void Main(string[] args)
    {
        Stopwatch sw = new Stopwatch();
        sw.Start();
        List<Task> tasks = new List<Task>();
        for (int i = 0; i < 10; i++)
            tasks.Add(AccessTheWebAsync());
        Task.WaitAll(tasks.ToArray());

        foreach (Task<HttpStatusCode> t in tasks)
            sb.Append((int)t.Result).Append(Environment.NewLine);
        Console.WriteLine(sb.ToString());            
        sw.Stop();
        Console.WriteLine("Run Completed, Time elapsed: {0}", sw.Elapsed);
        Console.ReadLine();
    }
但是,我没有一个好方法来确定这是否真的有效

  • 服务器是否设置了此限制

  • 操作系统设置了这个限制吗

  • 此应用程序配置和/或.NET是否设置了此限制


  • 使用静态int变量并使用联锁增量/减量。

    有没有可能使用VS2012来调试应用程序,这样我就可以 可以确定正在发生的并发web请求数 在执行过程中的任何给定点

    当然可以。使用和窗口,它们非常好

  • 服务器是否设置了此限制

  • 操作系统设置了这个限制吗

  • 此应用程序配置和/或.NET是否设置了此限制

  • 该设置指定并可在机器或应用程序级别上设置。服务器也可以为客户端设置连接限制,但这与
    maxconnection
    属性无关


    在您的示例中,实际的最大连接数也可能受到线程池设置的限制。查看更多详细信息。

    您现在所做的并不是有任何问题,仅供参考,HttpClient可以单独用于多个并发调用-您不需要为N个不同的调用提供N个不同的实例。@JamesManning好的,我将其改为一个字段。谢谢您的目标是以编程方式跟踪此行为(例如,在UI中显示)还是仅仅验证预期行为?澄清一下-如果只是查看行为,我将使用并信任Fiddler,而不是应用程序本身中的任何内容。:)尝试查看可以同时发出多少GET请求,但我不知道在哪里施加了此限制。
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
      <system.net>
        <connectionManagement>
          <add address = "*" maxconnection = "10" />
        </connectionManagement>
      </system.net>
    </configuration>