O middleware de limitação de taxa requer AddRateLimiter
Middleware ASP.NET Core de limitação de taxa foi atualizado com funcionalidade extra. O middleware agora requer serviços registrados com AddRateLimiter.
Versão introduzida
ASP.NET Core 8.0 Versão prévia 5
Comportamento anterior
Anteriormente, a limitação de taxa podia ser usada sem AddRateLimiter. Por exemplo, o middleware pode ser configurado chamando Configure<RateLimiterOptions>(o => { })
:
var builder = WebApplication.CreateBuilder(args);
builder.Services.Configure<RateLimiterOptions>(o => o
.AddFixedWindowLimiter(policyName: "fixed", options =>
{
// configuration
}));
var app = builder.Build();
app.UseRateLimiter();
app.MapGet("/", () => Results.Ok($"Hello world")).RequireRateLimiting("fixed");
app.Run();
Novo comportamento
Se AddRateLimiter não for chamado na inicialização do aplicativo, o ASP.NET Core gerará um erro informativo:
Não foi possível localizar os serviços necessários. Adicione todos os serviços necessários chamando 'IServiceCollection.AddRateLimiter' no código de inicialização do aplicativo.
Tipo de alteração interruptiva
Esta é uma alteração comportamental.
Motivo da alteração
O middleware de limitação de taxa requer serviços registrados apenas chamando AddRateLimiter.
Ação recomendada
Verifique se AddRateLimiter é chamado na inicialização do aplicativo.
Por exemplo, atualize Configure<RateLimiterOptions>(o => { })
para usar AddRateLimiter:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRateLimiter(o => o
.AddFixedWindowLimiter(policyName: "fixed", options =>
{
// configuration
}));
var app = builder.Build();
app.UseRateLimiter();
app.MapGet("/", () => Results.Ok($"Hello world")).RequireRateLimiting("fixed");
app.Run();