Compartir a través de


SignalR: los métodos UseSignalR y UseConnections se han quitado

En ASP.NET Core 3.0, SignalR adoptó el enrutamiento de puntos de conexión. Como parte de ese cambio, UseSignalR, UseConnections y algunos métodos relacionados se marcaron como obsoletos. En ASP.NET Core 5.0, se quitaron los métodos obsoletos. Para ver la lista completa de métodos, consulte API afectadas.

Para obtener información sobre esta incidencia, consulte dotnet/aspnetcore#20082.

Versión introducida

5.0 (versión preliminar 3)

Comportamiento anterior

Los controladores de conexión y concentradores de SignalR podrían registrarse en la canalización de software intermedio mediante los métodos UseSignalR o UseConnections.

Comportamiento nuevo

Los controladores de conexión y concentradores de SignalR deben registrarse en UseEndpoints mediante los métodos de extensión MapHub y MapConnectionHandler de IEndpointRouteBuilder.

Motivo del cambio

Los métodos anteriores tenían una lógica de enrutamiento personalizado que no interactuaba con otros componentes de enrutamiento en ASP.NET Core. En ASP.NET Core 3.0, se presentó un nuevo sistema de enrutamiento de uso general, llamado enrutamiento de puntos de conexión. El enrutamiento de puntos de conexión habilitó SignalR para interactuar con otros componentes de enrutamiento. Cambiar a este modelo permite a los usuarios comprender todos los beneficios del enrutamiento de puntos de conexión. Por consiguiente, se han quitado los métodos anteriores.

Quite el código que llama a UseSignalR o UseConnections desde el método Startup.Configure del proyecto. Reemplácelo por llamadas a MapHub o MapConnectionHandler, respectivamente, en el cuerpo de una llamada a UseEndpoints. Por ejemplo:

Código anterior:

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

Código nuevo:

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

En general, sus llamadas MapHub y MapConnectionHandler anteriores pueden transferirse directamente desde el cuerpo de UseSignalR y UseConnections a UseEndpoints sin que sean necesarios muchos cambios (o ninguno).

API afectadas