Compartilhar via


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.

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();

APIs afetadas