Partager via


Mise à niveau de projets SignalR 1.x vers la version 2

par Patrick Fletcher

Avertissement

Cette documentation ne concerne pas la dernière version de SignalR. Consultez ASP.NET Core SignalR.

Cette rubrique explique comment mettre à niveau un projet SignalR 1.x existant vers SignalR 2.x et comment résoudre les problèmes qui peuvent survenir pendant le processus de mise à niveau.

Versions logicielles utilisées dans le tutoriel

Utilisation de Visual Studio 2012 avec ce tutoriel

Pour utiliser Visual Studio 2012 avec ce didacticiel, procédez comme suit :

  • Mettez à jour votre Gestionnaire de package vers la dernière version.
  • Installez le programme d’installation de la plateforme web.
  • Dans le programme d’installation de plateforme web, recherchez et installez ASP.NET et Web Tools 2013.1 pour Visual Studio 2012. Cela permet d’installer des modèles Visual Studio pour les classes SignalR telles que Hub.
  • Certains modèles (tels que la classe de démarrage OWIN) ne seront pas disponibles ; pour ceux-ci, utilisez plutôt un fichier De classe.

Questions et commentaires

Laissez vos commentaires sur la façon dont vous avez aimé ce tutoriel et sur ce que nous pourrions améliorer dans les commentaires en bas de la page. Si vous avez des questions qui ne sont pas directement liées au tutoriel, vous pouvez les publier sur le forum ASP.NET SignalR ou StackOverflow.com.

SignalR 2 offre une expérience de développement cohérente sur les plateformes serveur à l’aide d’OWIN. Cet article décrit les quelques étapes nécessaires pour mettre à jour une application SignalR 1.x vers la version 2.

Bien qu’il soit recommandé de mettre à niveau les applications vers SignalR 2, SignalR 1.x sera toujours pris en charge.

Ce tutoriel explique comment mettre à niveau une application hébergée sur le web vers SignalR 2. Les applications auto-hébergées (celles qui hébergent un serveur dans une application console, un service Windows ou un autre processus) sont désormais prises en charge sous SignalR 2. Pour plus d’informations sur la création d’une application auto-hébergée avec SignalR 2, consultez Tutoriel : SignalR Self-Host.

Contenu

Les sections suivantes décrivent les tâches impliquées dans la mise à niveau des projets SignalR et la façon de résoudre les problèmes qui peuvent survenir.

Exemple : Mise à niveau de l’application tutoriel Prise en main vers SignalR 2

Dans cette section, vous allez mettre à jour l’application créée dans la version SignalR 1.x du didacticiel Prise en main pour utiliser SignalR 2.

  1. Une fois que vous avez terminé le tutoriel Prise en main, cliquez avec le bouton droit sur le projet, puis sélectionnez Propriétés. Vérifiez que l’infrastructure cible est définie sur .NET Framework 4.5.

  2. Ouvrez la console du gestionnaire de package. Supprimez SignalR 1.x du projet à l’aide de la commande suivante :

    Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
    
  3. Installez SignalR 2 à l’aide de la commande suivante :

    Install-Package Microsoft.AspNet.SignalR
    
  4. Dans la page HTML, mettez à jour la référence de script pour SignalR pour qu’elle corresponde à la version du script désormais incluse dans le projet.

    <!--Reference the SignalR library. -->
    <script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
    
  5. Dans la classe d’application globale, supprimez l’appel à MapHubs.

    protected void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapHubs();
    }
    
  6. Cliquez avec le bouton droit sur la solution, puis sélectionnez Ajouter, Nouvel élément.... Dans la boîte de dialogue, sélectionnez Classe de démarrage Owin. Nommez la nouvelle classe Startup.cs.

    Capture d’écran montrant la boîte de dialogue Ajouter un nouvel élément. La classe de démarrage OWIN est sélectionnée et le point de démarrage C S se trouve dans le champ Nom.

  7. Remplacez le contenu de Startup.cs par le code suivant :

    using Microsoft.Owin;
    using Owin;
    
    [assembly: OwinStartup(typeof(SignalRChat.Startup))]
    namespace SignalRChat
    {
       
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                app.MapSignalR();
            }
        }
    }
    

    L’attribut assembly ajoute la classe au processus de démarrage d’Owin, qui exécute la Configuration méthode au démarrage d’Owin. Cela appelle à son tour la MapSignalR méthode, qui crée des itinéraires pour tous les hubs SignalR dans l’application.

  8. Exécutez le projet et copiez l’URL de la page main dans un autre navigateur ou volet de navigateur, comme auparavant. Chaque page demande un nom d’utilisateur, et les messages envoyés à partir de chaque page doivent être visibles dans les deux volets du navigateur.

Résolution des erreurs rencontrées lors de la mise à niveau

Cette section décrit les problèmes qui peuvent se produire pendant la mise à niveau. Pour obtenir une liste plus complète des erreurs et des problèmes qui peuvent se produire avec une application SignalR, consultez Résolution des problèmes signalR.

« L’appel est ambigu entre les méthodes ou propriétés suivantes »

Cette erreur se produit si aucune référence à n’est Microsoft.AspNet.SignalR.Owin supprimée. Ce package est déconseillé ; la référence doit être supprimée et la version 1.x du package SelfHost doit être désinstallée.

Les méthodes hub échouent en mode silencieux

Vérifiez que les références de script dans votre client sont à jour et que l’attribut OwinStartup de votre classe Startup a les noms de classe et d’assembly appropriés pour votre projet. Essayez également d’ouvrir l’adresse hubs (/signaleur/hubs) dans votre navigateur ; toute erreur qui s’affiche offrira plus d’informations sur ce qui se passe mal.