SignalR : les méthodes UseSignalR et UseConnections ont été supprimées

Dans ASP.NET Core 3.0, SignalR a adopté le routage des points de terminaison. Dans le cadre de ce changement, les méthodes UseSignalR, UseConnections et certaines méthodes associées ont été marquées comme obsolètes. Dans ASP.NET Core 5.0, ces méthodes obsolètes ont été supprimées. Pour obtenir la liste complète des méthodes, consultez API affectées.

Pour plus d’informations sur ce problème, consultez dotnet/aspnetcore#20082.

Version introduite

5.0 Préversion 3

Ancien comportement

Les hubs SignalR et les descripteurs de connexion peuvent être inscrits dans le pipeline de l’intergiciel à l’aide des méthodes UseSignalR ou UseConnections.

Nouveau comportement

Les hubs SignalR et les descripteurs de connexion doivent être inscrits dans UseEndpoints à l’aide des méthodes d’extension MapHub et MapConnectionHandler sur IEndpointRouteBuilder.

Raison du changement

Les anciennes méthodes avaient une logique de routage personnalisée qui n’interagissant pas avec d’autres composants de routage dans ASP.NET Core. Dans ASP.NET Core 3.0, un nouveau système de routage à usage général, appelé routage de point de terminaison, a été introduit. Le routage de point de terminaison a activé SignalR pour interagir avec d’autres composants de routage. Le passage à ce modèle permet aux utilisateurs de tirer pleinement parti du routage des points de terminaison. Par conséquent, les anciennes méthodes ont été supprimées.

Supprimez le code qui appelle UseSignalR ou UseConnections de la méthode Startup.Configure de votre projet. Remplacez-le par des appels à MapHub ou MapConnectionHandler, respectivement, dans le corps d’un appel à UseEndpoints. Par exemple :

Ancien code :

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

Nouveau code :

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

En général, vos appels précédents MapHub et MapConnectionHandler peuvent être transférés directement du corps de UseSignalR et UseConnections vers UseEndpoints avec peu ou pas de changements nécessaires.

API affectées