Web API仅处理6个并发请求

时间:2018-09-03 13:10:37

标签: c# asp.net-web-api

我有一个使用异步/等待控制器和任务的Web api项目。

在第6个请求排队之后,我注意到了每个请求。为了测试这一点,我做了一个简单的延迟动作:

    [HttpGet()]
    [Route("maestros/prueba")]
    public async Task<IHttpActionResult> prueba()
    {

        await Task.Delay(5000);

        return await Task.FromResult(Ok(true));
    }

然后我从AngularJS应用程序中调用了它。我单击了18次,结果如下所示:

packs of 18 requests, processed in groups of 6, each one using 5s

我希望立即处理它们,即使它们对性能的影响不大,但我却面临着6个请求的处理块。

我尝试在控制器级别禁用会话,但它不起作用。我到处都在寻找信息,但这还不是结论,我真的不知道发生了什么。

对于这个项目,这是一个真正的问题,因为在某些部分发出6个请求的数量更多,并且一切都变慢了。

发生了什么事?我可以更改它吗?

2 个答案:

答案 0 :(得分:1)

您看不到明显的东西。不是WebApi仅处理并发请求。这是您的浏览器没有发送更多信息。

Max parallel http connections in a browser?

基本上,Chrome每个域只会使用6个并发打开请求。想要更多-使用多个浏览器或多个域。

这与WebAPI(服务器端)完全无关,纯粹是您选择的浏览器强制执行的客户端限制。

答案 1 :(得分:0)

Bombardier是测试此问题的更好(便捷)工具。它可以激发服务器处理的尽可能多的请求。

我们所有的端点都是异步/等待状态,可以轻松地为您的浏览器提供6个以上的服务。