写在前面
本文参考官方文档,使用Asp.net core 8.0 的最小API 模板项目,配置超时中间件。
超时中间件可用于所有类型的ASP.NET Core应用:最小 API、带控制器的 Web API、MVC 和 Razor Pages。请求超时的属性位于命名空间 Microsoft.AspNetCore.Http.Timeouts 中。
需要注意的是,当应用在调试模式下运行时,超时中间件不会触发。要测试超时,请运行未附加调试器的应用。
代码实现
using Microsoft.AspNetCore.Http.Timeouts;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddRequestTimeouts();
var app = builder.Build();
app.UseRequestTimeouts();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.MapGet("/", async (HttpContext context) => {
try
{
await Task.Delay(Tim