Asp.net核心2对CORS预检请求响应缓慢

时间:2017-10-30 07:19:12

标签: c# performance asp.net-core

我们有一个asp.net core 2服务器。 在性能测试中,当我们有几个(比如数十个)待处理请求时,新的CORS预检请求保持待定状态。

似乎asp.net核心对管道中的并发请求数有一定的限制,并且该限制的默认值非常低。

是否有关于这些与性能相关的主题的资源? 有没有办法确定请求的优先顺序?

当然,在我们优化其他请求之后,这个问题将难以重现,所以我们想要了解它。

1 个答案:

答案 0 :(得分:2)

我已经回答了与{1}}的ASP.NET Core Kestrel基准性能相关的similar question

简而言之,您可以删除导致瓶颈的中间件,或者至少这可以帮助您诊断罪魁祸首。

  

<强>排序
  在Configure方法中添加中间件组件的顺序定义了它们在请求上调用的顺序,以及响应的相反顺序。 此排序对于安全性,性能和功能至关重要。

     

------来源:here

的短路

您可以通过不调用next参数来短路请求管道以处理性能优化(或测试)。例如:

public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        // make sure you place this at the top
        // the request pipeline will go in sequence
        app.Use(async (context, next) =>
        {
            // do work for your special case, performance tests, etc

            // in order to short-circuit the pipeline, do NOT call the next parameter 
            // so, you could place some kind of conditional here that will allow only
            // specific requests to continue down/up the pipeline
            if (!true)
            {
                await next.Invoke();
            }
        });

        // the rest of the pipeline
    }
}