Oprogramowanie pośredniczące ograniczające szybkość wymaga dodatku AddRateLimiter
ASP.NET podstawowe oprogramowanie pośredniczące ograniczające szybkość zostało zaktualizowane o dodatkowe funkcje. Oprogramowanie pośredniczące wymaga teraz usług zarejestrowanych w programie AddRateLimiter.
Wprowadzona wersja
ASP.NET Core 8.0 (wersja zapoznawcza 5)
Poprzednie zachowanie
Wcześniej można było używać ograniczania szybkości bez AddRateLimiterfunkcji . Na przykład oprogramowanie pośredniczące można skonfigurować przez wywołanie metody 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();
Nowe zachowanie
Jeśli AddRateLimiter nie jest wywoływana podczas uruchamiania aplikacji, ASP.NET Core zgłasza błąd informacyjny:
Nie można odnaleźć wymaganych usług. Dodaj wszystkie wymagane usługi, wywołując element "IServiceCollection.AddRateLimiter" w kodzie uruchamiania aplikacji.
Typ zmiany powodującej niezgodność
Ta zmiana jest zmianą behawioralną.
Przyczyna wprowadzenia zmiany
Oprogramowanie pośredniczące ograniczające szybkość wymaga usług zarejestrowanych tylko przez wywołanie metody AddRateLimiter.
Zalecana akcja
Upewnij się, że AddRateLimiter jest wywoływana podczas uruchamiania aplikacji.
Na przykład zaktualizuj Configure<RateLimiterOptions>(o => { })
polecenie , aby użyć polecenia 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();