Durchführen eines Upgrades für SignalR 1.x-Projekte auf Version 2

von Patrick Fletcher

Warnung

Diese Dokumentation ist nicht für die neueste Version von SignalR vorgesehen. Sehen Sie sich ASP.NET Core SignalR an.

In diesem Thema wird beschrieben, wie Sie ein vorhandenes SignalR 1.x-Projekt auf SignalR 2.x aktualisieren und Probleme beheben, die während des Upgradevorgangs auftreten können.

Im Tutorial verwendete Softwareversionen

Verwenden von Visual Studio 2012 in diesem Tutorial

Gehen Sie wie folgt vor, um Visual Studio 2012 mit diesem Tutorial zu verwenden:

  • Aktualisieren Sie Ihren Paket-Manager auf die neueste Version.
  • Installieren Sie den Webplattform-Installer.
  • Suchen Sie im Webplattform-Installer nach ASP.NET and Web Tools 2013.1 für Visual Studio 2012, und installieren Sie sie. Dadurch werden Visual Studio-Vorlagen für SignalR-Klassen wie Hub installiert.
  • Einige Vorlagen (z. B. die OWIN-Startklasse) sind nicht verfügbar. Verwenden Sie für diese stattdessen eine Klassendatei.

Fragen und Kommentare

Bitte hinterlassen Sie Feedback darüber, wie Ihnen dieses Tutorial gefallen hat und was wir in den Kommentaren unten auf der Seite verbessern könnten. Wenn Sie Fragen haben, die sich nicht direkt auf das Tutorial beziehen, können Sie diese im ASP.NET SignalR-Forum oder im StackOverflow.com posten.

SignalR 2 bietet eine konsistente Entwicklungsumgebung für Serverplattformen mit OWIN. In diesem Artikel werden die schritte beschrieben, die zum Aktualisieren einer SignalR 1.x-Anwendung auf Version 2 erforderlich sind.

Es wird zwar empfohlen, Anwendungen auf SignalR 2 zu aktualisieren, SignalR 1.x wird jedoch weiterhin unterstützt.

In diesem Tutorial wird beschrieben, wie Sie ein Upgrade einer im Web gehosteten Anwendung auf SignalR 2 durchführen. Selbstgehostete Anwendungen (solche, die einen Server in einer Konsolenanwendung, einem Windows-Dienst oder einem anderen Prozess hosten) werden jetzt unter SignalR 2 unterstützt. Informationen zu den ersten Schritten beim Erstellen einer selbstgehosteten Anwendung mit SignalR 2 finden Sie unter Tutorial: SignalR Self-Host.

Inhalte

In den folgenden Abschnitten werden Aufgaben beschrieben, die mit dem Upgrade von SignalR-Projekten verbunden sind, und die Behandlung von Problemen, die auftreten können.

Beispiel: Aktualisieren der Erste Schritte Tutorialanwendung auf SignalR 2

In diesem Abschnitt aktualisieren Sie die Anwendung, die in der SignalR 1.x-Version des Erste Schritte-Tutorials erstellt wurde, um SignalR 2 zu verwenden.

  1. Nachdem Sie das Erste Schritte-Tutorial abgeschlossen haben, klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie Eigenschaften aus. Stellen Sie sicher, dass das Zielframework auf .NET Framework 4.5 festgelegt ist.

  2. Öffnen Sie die Paket-Manager-Konsole. Entfernen Sie SignalR 1.x mit dem folgenden Befehl aus dem Projekt:

    Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
    
  3. Installieren Sie SignalR 2 mit dem folgenden Befehl:

    Install-Package Microsoft.AspNet.SignalR
    
  4. Aktualisieren Sie auf der HTML-Seite den Skriptverweis für SignalR so, dass er der Version des Skripts entspricht, das jetzt im Projekt enthalten ist.

    <!--Reference the SignalR library. -->
    <script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
    
  5. Entfernen Sie in der globalen Anwendungsklasse den Aufruf von MapHubs.

    protected void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapHubs();
    }
    
  6. Klicken Sie mit der rechten Maustaste auf die Projektmappe, und wählen Sie Hinzufügen, Neues Element... aus. Wählen Sie im Dialogfeld Owin-Startklasse aus. Nennen Sie die neue Klasse Startup.cs.

    Screenshot: Dialogfeld

  7. Ersetzen Sie den Inhalt von Startup.cs durch den folgenden Code:

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

    Das Assembly-Attribut fügt die -Klasse dem Startprozess von Owin hinzu, der die Configuration -Methode ausführt, wenn Owin gestartet wird. Dadurch wird wiederum die MapSignalR -Methode aufgerufen, die Routen für alle SignalR-Hubs in der Anwendung erstellt.

  8. Führen Sie das Projekt aus, und kopieren Sie die URL der seite Standard wie zuvor in einen anderen Browser oder Browserbereich. Jede Seite fragt nach einem Benutzernamen, und nachrichten, die von jeder Seite gesendet werden, sollten in beiden Browserbereichen sichtbar sein.

Behandeln von Fehlern, die während des Upgrades auftreten

In diesem Abschnitt werden Probleme beschrieben, die während des Upgrades auftreten können. Eine umfassendere Liste der Fehler und Probleme, die bei einer SignalR-Anwendung auftreten können, finden Sie unter Problembehandlung für SignalR.

"Der Aufruf ist mehrdeutig zwischen den folgenden Methoden oder Eigenschaften"

Dieser Fehler tritt auf, wenn ein Verweis auf Microsoft.AspNet.SignalR.Owin nicht entfernt wird. Dieses Paket ist veraltet. Der Verweis muss entfernt werden, und die Version 1.x des SelfHost-Pakets muss deinstalliert werden.

Hubmethoden schlagen im Hintergrund fehl

Stellen Sie sicher, dass die Skriptverweise in Ihrem Client auf dem neuesten Stand sind und dass das OwinStartup Attribut für Ihre Startup-Klasse über die richtigen Klassen- und Assemblynamen für Ihr Projekt verfügt. Versuchen Sie auch, die Hubs-Adresse (/signalr/hubs) in Ihrem Browser zu öffnen. Jeder angezeigte Fehler bietet weitere Informationen darüber, was schief läuft.