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.
Empfohlene Aktion
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.