Freigeben über


SignalR: UseSignalR- und UseConnections-Methoden entfernt

In ASP.NET Core 3.0 hat SignalR das Endpunktrouting übernommen. Im Rahmen dieser Änderung wurden die UseSignalR, UseConnections, und einige verwandte Methoden als veraltet markiert. In ASP.NET Core 5.0 wurden diese veralteten Methoden entfernt. Die vollständige Liste der Methoden finden Sie unter "Betroffene APIs".

Eine Diskussion zu diesem Thema finden Sie unter dotnet/aspnetcore#20082.

Eingeführte Version

5.0 Vorschau 3

Altes Verhalten

SignalR-Hubs und Verbindungshandler können mithilfe der UseSignalR Methoden oder UseConnections Methoden in der Middlewarepipeline registriert werden.

Neues Verhalten

SignalR-Hubs und Verbindungshandler sollten innerhalb von UseEndpoints mit den Erweiterungsmethoden MapHub und MapConnectionHandler auf IEndpointRouteBuilder registriert werden.

Grund für Änderung

Die alten Methoden hatten benutzerdefinierte Routinglogik, die nicht mit anderen Routingkomponenten in ASP.NET Core interagiert hat. In ASP.NET Core 3.0 wurde ein neues allgemeines Routingsystem eingeführt, das als Endpunktrouting bezeichnet wird. Das Endpunktrouting hat SignalR für die Interaktion mit anderen Routingkomponenten aktiviert. Durch den Wechsel zu diesem Modell können Benutzer die vollständigen Vorteile des Endpunktroutings erkennen. Folglich wurden die alten Methoden entfernt.

Entfernen Sie Code, der UseSignalR oder UseConnections aus der Methode Startup.Configure Ihres Projekts aufruft. Ersetzen Sie dies durch Aufrufe an MapHub oder MapConnectionHandler, jeweils innerhalb des Aufrufs an UseEndpoints. 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