SignalR: UseSignalR- und UseConnections-Methoden entfernt

In ASP.NET Core 3.0 wurde für SignalR das Endpunktrouting eingeführt. Im Rahmen dieser Änderung wurde die Methoden UseSignalR und UseConnections sowie einige verwandte Methoden als veraltet gekennzeichnet. In ASP.NET Core 5.0 wurden diese veralteten Methoden entfernt. Eine vollständige Liste der Methoden finden Sie unter Betroffene APIs.

Dieses Problem wird unter dotnet/aspnetcore#20082 behandelt.

Eingeführt in Version

5.0 Preview 3

Altes Verhalten

SignalR-Hubs und Verbindungshandler konnten in der Middlewarepipeline über die Methoden UseSignalR oder UseConnections registriert werden.

Neues Verhalten

SignalR-Hubs und Verbindungsmethoden müssen innerhalb von UseEndpoints mithilfe der Erweiterungsmethoden MapHub und MapConnectionHandler in IEndpointRouteBuilder registriert werden.

Grund für die Änderung

Die alten Methoden umfassten eine benutzerdefinierte Routinglogik, die keine Interaktion mit anderen Routingkomponenten in ASP.NET Core ermöglichte. In ASP.NET Core 3.0 wurde ein neues, universelles Routingsystem eingeführt, das sogenannte Endpunktrouting. Das Endpunktrouting ermöglichte SignalR eine Interaktion mit anderen Routingkomponenten. Durch den Wechsel auf dieses Modell können Benutzer alle Vorteile des Endpunktroutings nutzen. Folglich wurden die alten Methoden entfernt.

Entfernen Sie Code, der UseSignalR oder UseConnections aus der Startup.Configure-Methode Ihres Projekts aufruft. Verwenden Sie stattdessen Aufrufe von MapHub bzw. MapConnectionHandler im Text eines UseEndpoints-Aufrufs. Zum Beispiel:

Alter Code:

app.UseSignalR(routes =>
{
    routes.MapHub<SomeHub>("/path");
});

Neuer Code:

app.UseEndpoints(endpoints =>
{
    endpoints.MapHub<SomeHub>("/path");
});

Im Allgemeinen können die vorherigen MapHub- und MapConnectionHandler-Aufrufe mit minimalen oder ganz ohne Änderungen direkt vom Text von UseSignalR und UseConnections nach UseEndpoints übertragen werden.

Betroffene APIs