Hastighetsbegränsning av mellanprogram kräver AddRateLimiter
ASP.NET Core rate-limiting middleware har uppdaterats med extra funktioner. Mellanprogrammet kräver nu tjänster som registrerats med AddRateLimiter.
Version introducerad
ASP.NET Core 8.0 Förhandsversion 5
Tidigare beteende
Tidigare kunde hastighetsbegränsning användas utan AddRateLimiter. Till exempel kan mellanprogrammet konfigureras genom att anropa 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();
Nytt beteende
Om AddRateLimiter det inte anropas vid appstart utlöser ASP.NET Core ett informativt fel:
Det går inte att hitta de tjänster som krävs. Lägg till alla nödvändiga tjänster genom att anropa "IServiceCollection.AddRateLimiter" i programmets startkod.
Typ av icke-bakåtkompatibel ändring
Den här ändringen är en beteendeförändring.
Orsak till ändringen
Hastighetsbegränsning av mellanprogram kräver tjänster som endast registreras genom att anropa AddRateLimiter.
Rekommenderad åtgärd
Se till att UseRateLimiter anropas vid programstart.
Uppdatera till exempel Configure<RateLimiterOptions>(o => { })
för att använda UseRateLimiter:
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();
Berörda API:er
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för