默认情况下,Web API可以同时处理多少个请求

时间:2019-01-29 10:07:50

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

我有一个非常简单的Web API,它是使用c#.Net Framework 4.6开发的。
整个应用程序中没有async个调用。每个请求大约需要30秒才能完成。它进行一些计算并返回JSON字符串。它不涉及任何数据库,它只是从云下载文件并计算一些值。

它托管在Windows Server 2016 IIS中。

我想知道在给定的时间点Web API或IIS处理多少个并发请求。

我知道不能像这样从web.config增加并发请求:

<configuration>
  <system.net>
    <connectionManagement>
      <add address="*" maxconnection="50000"/>
    </connectionManagement>
  </system.net>
</configuration>

以下是我有的一些基本问题。
1.默认情况下,Web API是否具有处理并发请求的功能(不在web.config或应用程序中的任何位置添加任何内容)。如果是,多少?

  1. 默认情况下,IIS是否具有处理并发请求(使用IIS线程池)的属性。如果是,多少?

PS:假定此API使用的所有资源始终可用。

如果有人可以帮助我理解这一点并将我引向正确的文章,这对我非常有帮助。提前非常感谢!

1 个答案:

答案 0 :(得分:0)

这取决于IIS可以根据CPU数量,最大线程数,安装的内存量以及生成响应所需的操作的“难度”来返回请求。

如果IIS无法随时处理请求,则将该请求排队。我认为已排队的请求的最大数量为9000。达到该限制后,服务器返回503错误。

取决于硬件因素以及响应的“权重”,它的范围可能从100个请求到50000个甚至更多。

这都是考虑到您有足够的可用带宽。