Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine neue Überladung app.Use
von wurde eingeführt. Wenn Sie app.Use
aufrufen, aber die Middleware next
nie aufrufen, erhalten Sie jetzt den Compilerfehler CS0121:
Der Aufruf ist zwischen den folgenden Methoden oder Eigenschaften mehrdeutig: 'UseExtensions.Use(IApplicationBuilder, Func<HttpContext, Func, Task>)' und 'UseExtensions.Use(IApplicationBuilder, Func<HttpContext, RequestDelegate, Task>)'
Verwenden Sie app.Run
zum Beheben des Fehlers anstelle von app.Use
.
Weitere Diskussionen finden Sie auf GitHub Issue dotnet/aspnetcore#32020.
Eingeführte Version
ASP.NET Core 6.0
Altes Verhalten
app.Use(async (context, next) =>
{
await next();
});
oder
app.Use(async (context, next) =>
{
await SomeAsyncWork();
// next not called...
});
Neues Verhalten
Sie können jetzt context
an den next
Delegierten übergeben.
app.Use(async (context, next) =>
{
await next(context);
});
Verwenden Sie app.Run
, wenn Ihre Middleware next
niemals aufruft.
app.Run(async (context) =>
{
await SomeAsyncWork();
// next never called
});
Grund für Änderung
Die vorherige Use
Methode weist zwei Objekte pro Anforderung zu. Die neue Überladung vermeidet diese Zuordnungen mit einer kleinen Änderung an der Art und Weise, wie Sie die next
Middleware aufrufen.
Empfohlene Aktion
Wenn Sie einen Kompilierungsfehler erhalten, bedeutet dies, dass Sie app.Use
aufrufen, ohne den next
Delegat zu verwenden. Wechseln Sie zu app.Run
, um den Fehler zu beheben.
Betroffene APIs
Keiner.