SignalR: metodi UseSignalR e UseConnections rimossi
In ASP.NET Core 3.0 SignalR ha adottato il routing degli endpoint. Come parte di tale modifica, UseSignalR, UseConnections e alcuni metodi correlati sono stati contrassegnati come obsoleti. In ASP.NET Core 5.0 questi metodi obsoleti sono stati rimossi. Per l'elenco completo dei metodi, consultare API interessate.
Per informazioni su questo problema, vedere dotnet/aspnetcore#20082.
Versione introdotta
5.0 Preview 3
Comportamento precedente
Gli hub SignalR e i gestori di connessione possono essere registrati nella pipeline middleware usando i metodi UseSignalR
o UseConnections
.
Nuovo comportamento
Gli hub SignalR e i gestori di connessione devono essere registrati all'interno di UseEndpoints usando i metodi di estensione MapHub e MapConnectionHandler in IEndpointRouteBuilder.
Motivo della modifica
I metodi precedenti avevano una logica di routing personalizzata che non interagisce con altri componenti di routing in ASP.NET Core. In ASP.NET Core 3.0 è stato introdotto un nuovo sistema di routing per utilizzo generico, denominato routing degli endpoint. Il routing degli endpoint ha abilitato SignalR per interagire con altri componenti di routing. Il passaggio a questo modello consente agli utenti di sfruttare appieno i vantaggi del routing degli endpoint. Di conseguenza, i metodi precedenti sono stati rimossi.
Azione consigliata
Rimuovere il codice che chiama UseSignalR
o UseConnections
dal metodo di Startup.Configure
del progetto. Sostituirlo con le chiamate rispettivamente a MapHub
o MapConnectionHandler
, all'interno del corpo di una chiamata a UseEndpoints
. Ad esempio:
Codice precedente:
app.UseSignalR(routes =>
{
routes.MapHub<SomeHub>("/path");
});
Nuovo codice:
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<SomeHub>("/path");
});
In generale, le chiamate precedenti MapHub
e MapConnectionHandler
possono essere trasferite direttamente dal corpo di UseSignalR
e UseConnections
a UseEndpoints
con modifiche minime o non necessarie.