속도 제한 미들웨어에는 AddRateLimiter가 필요함
ASP.NET Core 속도 제한 미들웨어가 추가 기능으로 업데이트되었습니다. 이제 미들웨어에는 AddRateLimiter에 등록된 서비스가 필요합니다.
도입된 버전
ASP.NET Core 8.0 미리 보기 5
이전 동작
이전에는 AddRateLimiter 없이 속도 제한을 사용할 수 있었습니다. 예를 들어, 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();
새 동작
앱 시작 시 AddRateLimiter가 호출되지 않으면 ASP.NET Core에서 정보 오류가 throw됩니다.
필요한 서비스를 찾을 수 없습니다. 애플리케이션 시작 코드에서 'IServiceCollection.AddRateLimiter'를 호출하여 필요한 서비스를 모두 추가하세요.
호환성이 손상되는 변경의 형식
이 변경 사항은 동작 변경입니다.
변경 이유
속도 제한 미들웨어에는 AddRateLimiter를 호출해야만 등록되는 서비스가 필요합니다.
권장 작업
애플리케이션 시작 시 AddRateLimiter가 호출되는지 확인합니다.
예를 들어, AddRateLimiter를 사용하려면 Configure<RateLimiterOptions>(o => { })
를 업데이트합니다.
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();
영향을 받는 API
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET