미들웨어: 새 Use 오버로드
app.Use
의 새 오버로드가 도입되었습니다. app.Use
는 호출하지만 next
미들웨어를 호출하지 않으면 이제 컴파일러 오류 CS0121이 발생합니다.
다음 메서드 또는 속성 사이에서 호출이 모호합니다. 'UseExtensions.Use(IApplicationBuilder, Func<HttpContext, Func, Task>)' 및 'UseExtensions.Use(IApplicationBuilder, Func<HttpContext, RequestDelegate, Task>)'
오류를 해결하려면 app.Use
대신 app.Run
을 사용합니다.
자세한 내용은 GitHub 이슈 dotnet/aspnetcore#32020을 참조하세요.
도입된 버전
ASP.NET Core 6.0
이전 동작
app.Use(async (context, next) =>
{
await next();
});
또는
app.Use(async (context, next) =>
{
await SomeAsyncWork();
// next not called...
});
새 동작
이제 next
대리자에 context
를 전달할 수 있습니다.
app.Use(async (context, next) =>
{
await next(context);
});
미들웨어에서 next
를 호출하지 않는 경우 app.Run
을 사용합니다.
app.Run(async (context) =>
{
await SomeAsyncWork();
// next never called
});
변경 이유
이전 Use
메서드는 요청당 두 개의 개체를 할당합니다. 새 오버로드는 next
미들웨어를 호출하는 방법을 약간 변경하여 이러한 할당을 방지합니다.
권장 작업
컴파일 오류가 발생하는 경우 next
대리자를 사용하지 않고 app.Use
를 호출하기 때문입니다. 오류를 해결하려면 app.Run
으로 전환합니다.
영향을 받는 API
없음
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET