ConcurrencyLimiterMiddleware je zastaralé
ConcurrencyLimiterMiddleware a jeho přidružené metody a typy byly označeny jako zastaralé.
Pokud požadujete možnosti omezování rychlosti, přepněte na novější a více schopný middleware omezování rychlosti, který byl zaveden v .NET 7 (například RateLimiterApplicationBuilderExtensions.UseRateLimiter). Rozhraní API pro omezování rychlosti .NET 7 zahrnuje limitátor souběžnosti a několik dalších algoritmů omezování rychlosti, které můžete použít pro vaši aplikaci.
Zavedená verze
ASP.NET Core 8.0 Preview 4
Předchozí chování
Vývojáři můžou řídit ConcurrencyLimiterMiddleware souběžnost přidáním zásady do injektáže závislostí (DI) a povolením middlewaru:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddStackPolicy<options => {
options.MaxConcurrentRequests = 2;
options.RequestQueueLimit = 25;
});
var app = builder.Build();
app.UseConcurrencyLimiter();
// Map endpoints.
app.Run();
Nové chování
Pokud ve svém kódu použijete ovlivněná rozhraní API , zobrazí se v době kompilace upozornění CS0618
.
Typ zásadní změny
Tato změna má vliv na kompatibilitu zdroje.
Důvod změny
ConcurrencyLimiterMiddleware je zřídka používaný a nezdokumentovaný. Novější rozhraní API pro omezování rychlosti má rozsáhlejší funkce.
Doporučená akce
Pokud používáte starší ConcurrencyLimiterMiddleware, doporučujeme přejít na novější middleware s omezením rychlosti. Tady je příklad použití novějšího rozhraní API: RateLimiterApplicationBuilderExtensions.UseRateLimiter
using Microsoft.AspNetCore.RateLimiting;
using System.Threading.RateLimiting;
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.UseRateLimiter(new RateLimiterOptions()
.AddConcurrencyLimiter("only-one-at-a-time-stacked", (options) =>
{
options.PermitLimit = 2;
options.QueueLimit = 25;
options.QueueProcessingOrder = QueueProcessingOrder.NewestFirst;
}));
app.MapGet("/", async () =>
{
await Task.Delay(10000);
return "Hello World";
}).RequireRateLimiting("only-one-at-a-time-stacked");
app.Run();
Ovlivněná rozhraní API
- Microsoft.AspNetCore.Builder.ConcurrencyLimiterExtensions.UseConcurrencyLimiter(IApplicationBuilder)
- Microsoft.AspNetCore.ConcurrencyLimiter.ConcurrencyLimiterMiddleware
- System.Threading.RateLimiting.ConcurrencyLimiterOptions
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro