我有一个.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秒后不抛出错误?
1条答案
按热度按时间3phpmpom1#
根据您的要求,我创建了一个自定义的中间件。
TimeoutMiddleware.cs
注册中间件。
订单非常重要,您可以按以下方式注册。
我的测试代码。
我的检测结果