Concurrency 如何在.NET核心Web API中配置并发性?

Concurrency 如何在.NET核心Web API中配置并发性?,concurrency,asp.net-core,asp.net-core-webapi,Concurrency,Asp.net Core,Asp.net Core Webapi,在以前的WCF时代,您可以通过MaxConcurrentCalls设置来控制服务并发性MaxConcurrentCalls默认为16个并发调用,但您可以根据需要提高或降低该值 如何在.NET核心Web API中控制服务器端并发?在我们的情况下,我们可能需要限制它,因为太多的并发请求可能会影响服务器的整体性能。ASP.NET核心应用程序的并发性由its处理。例如: 红隼 var host=new WebHostBuilder() .UseKestrel(选项=>options.ThreadCoun

在以前的WCF时代,您可以通过
MaxConcurrentCalls
设置来控制服务并发性
MaxConcurrentCalls
默认为16个并发调用,但您可以根据需要提高或降低该值


如何在.NET核心Web API中控制服务器端并发?在我们的情况下,我们可能需要限制它,因为太多的并发请求可能会影响服务器的整体性能。

ASP.NET核心应用程序的并发性由its处理。例如:

红隼
var host=new WebHostBuilder()
.UseKestrel(选项=>options.ThreadCount=8)
由于基于Kestrel异步实现,建议不要将Kestrel线程计数设置为大值,如
1K

更多信息:

ASP.NET Core 2.0预览2中已添加了新的
限制
属性

现在,您可以为以下各项添加限制:

  • 最大客户端连接数
  • 最大请求正文大小
  • 最大请求正文数据速率
  • 例如:

    .UseKestrel(选项=>
    {
    options.Limits.MaxConcurrentConnections=100;
    }
    
    非法移民 当Kestrel在反向代理后运行时,您可以调整代理本身。例如,您可以在
    web.config
    aspnet.config
    中配置IIS应用程序池:

    
    

    当然,NginxApache都有自己的并发设置。

    如果我将更改添加到aspnet.config,如何应用它们?重新启动服务器?重新启动iis?回收应用程序池?有人知道Kestrel web主机在收到请求并且服务器已经运行了最大数量的thr时的行为吗eads?