.NET Core 3.1 传入请求超时不起作用

问题描述 投票:0回答:0

我有一个 .NET Core 3.1 Web API,我想控制它在返回 504 超时错误之前等待多长时间。

我在

Program.cs
中添加了以下代码:

public static void Main(string[] args) => CreateHostBuilder(args).Build().Run();

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
            webBuilder.UseKestrel(opt => { opt.Limits.KeepAliveTimeout = TimeSpan.FromSeconds(10); });
        });

有了这个,我希望任何处理时间超过 10 秒的请求都会返回 504 错误。

为了测试,我在我的一个控制器中添加了一个

Thread.Sleep(100000)
作为第一行。

当我通过 Postman 调用端点时,它会等待整整 100 秒并返回 200。

为什么 10 秒后不报错?

c# .net asp.net-core-3.1 kestrel-http-server
© www.soinside.com 2019 - 2024. All rights reserved.