Udostępnij za pośrednictwem


Uaktualnianie projektów SignalR 1.x do wersji 2

Autor : Patrick Fletcher

Ostrzeżenie

Ta dokumentacja nie jest przeznaczona dla najnowszej wersji usługi SignalR. Przyjrzyj się ASP.NET Core SignalR.

W tym temacie opisano sposób uaktualniania istniejącego projektu SignalR 1.x do usługi SignalR 2.x oraz sposobu rozwiązywania problemów, które mogą wystąpić podczas procesu uaktualniania.

Wersje oprogramowania używane w samouczku

Korzystanie z programu Visual Studio 2012 z tym samouczkiem

Aby użyć programu Visual Studio 2012 z tym samouczkiem, wykonaj następujące czynności:

  • Zaktualizuj Menedżera pakietów do najnowszej wersji.
  • Zainstaluj Instalatora platformy sieci Web.
  • W Instalatorze platformy internetowej wyszukaj i zainstaluj ASP.NET and Web Tools 2013.1 dla programu Visual Studio 2012. Spowoduje to zainstalowanie szablonów programu Visual Studio dla klas SignalR, takich jak Hub.
  • Niektóre szablony (takie jak klasa uruchamiania OWIN) nie będą dostępne; w przypadku nich należy zamiast tego użyć pliku Klasy.

Pytania i komentarze

Prześlij opinię na temat tego, jak podoba ci się ten samouczek i co możemy poprawić w komentarzach w dolnej części strony. Jeśli masz pytania, które nie są bezpośrednio związane z samouczkiem, możesz opublikować je na forum ASP.NET SignalR lub StackOverflow.com.

Usługa SignalR 2 oferuje spójne środowisko programistyczne na różnych platformach serwerowych przy użyciu OWIN. W tym artykule opisano kilka kroków wymaganych do zaktualizowania aplikacji SignalR 1.x do wersji 2.

Chociaż zaleca się uaktualnienie aplikacji do usługi SignalR 2, usługa SignalR 1.x będzie nadal obsługiwana.

W tym samouczku opisano sposób uaktualniania aplikacji hostowanej w internecie do usługi SignalR 2. Aplikacje hostowane samodzielnie (te, które hostują serwer w aplikacji konsolowej, usłudze systemu Windows lub innym procesie) są teraz obsługiwane w usłudze SignalR 2. Aby uzyskać informacje na temat rozpoczynania tworzenia aplikacji hostowanej samodzielnie za pomocą usługi SignalR 2, zobacz Samouczek: Samodzielny host usługi SignalR.

Zawartość

W poniższych sekcjach opisano zadania związane z uaktualnianiem projektów usługi SignalR oraz sposoby rozwiązywania problemów, które mogą wystąpić.

Przykład: uaktualnianie aplikacji samouczka Wprowadzenie do usługi SignalR 2

W tej sekcji zaktualizujesz aplikację utworzoną w wersji SignalR 1.x samouczka Wprowadzenie, aby korzystała z usługi SignalR 2.

  1. Po zakończeniu samouczka Wprowadzenie kliknij prawym przyciskiem myszy projekt i wybierz pozycję Właściwości. Sprawdź, czy platforma docelowa jest ustawiona na .NET Framework 4.5.

  2. Otwórz konsolę Menedżera pakietów. Usuń usługę SignalR 1.x z projektu przy użyciu następującego polecenia:

    Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
    
  3. Zainstaluj usługę SignalR 2 przy użyciu następującego polecenia:

    Install-Package Microsoft.AspNet.SignalR
    
  4. Na stronie HTML zaktualizuj odwołanie do skryptu dla usługi SignalR, aby dopasować wersję skryptu, która jest teraz uwzględniona w projekcie.

    <!--Reference the SignalR library. -->
    <script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
    
  5. W globalnej klasie aplikacji usuń wywołanie usługi MapHubs.

    protected void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapHubs();
    }
    
  6. Kliknij prawym przyciskiem myszy rozwiązanie, a następnie wybierz pozycję Dodaj, Nowy element.... W oknie dialogowym wybierz pozycję Owin Startup Class (Klasa uruchamiania Owin). Nadaj nowej klasie nazwę Startup.cs.

    Zrzut ekranu przedstawiający okno dialogowe Dodawanie nowego elementu. Wybrano klasę uruchamiania OWIN, a kropka startowa C S znajduje się w polu Nazwa.

  7. Zastąp zawartość pliku Startup.cs następującym kodem:

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

    Atrybut zestawu dodaje klasę do procesu uruchamiania Owina, który wykonuje metodę Configuration podczas uruchamiania Owin. Z kolei wywołuje metodę MapSignalR , która tworzy trasy dla wszystkich centrów SignalR w aplikacji.

  8. Uruchom projekt i skopiuj adres URL strony głównej do innego okienka przeglądarki lub przeglądarki, tak jak poprzednio. Każda strona będzie prosić o nazwę użytkownika, a komunikaty wysyłane z każdej strony powinny być widoczne w obu okienkach przeglądarki.

Rozwiązywanie problemów napotkanych podczas uaktualniania

W tej sekcji opisano problemy, które mogą wystąpić podczas uaktualniania. Aby uzyskać bardziej kompleksową listę błędów i problemów, które mogą wystąpić w aplikacji SignalR, zobacz Rozwiązywanie problemów z usługą SignalR.

"Wywołanie jest niejednoznaczne między następującymi metodami lub właściwościami"

Ten błąd wystąpi, jeśli odwołanie do Microsoft.AspNet.SignalR.Owin nie zostanie usunięte. Ten pakiet jest przestarzały; odwołanie musi zostać usunięte, a należy odinstalować wersję 1.x pakietu SelfHost.

Metody koncentratora kończą się niepowodzeniem w trybie dyskretnym

Sprawdź, czy odwołania do skryptu w kliencie są aktualne i czy OwinStartup atrybut klasy Startup ma poprawne nazwy klas i zestawów dla projektu. Spróbuj również otworzyć adres koncentratora (/signalr/hubs) w przeglądarce; wszelkie wyświetlane błędy będą zawierać więcej informacji o tym, co się dzieje nie tak.