Upgradování projektů SignalR 1.x na verzi 2
Upozornění
Tato dokumentace není určená pro nejnovější verzi služby SignalR. Podívejte se na ASP.NET Core SignalR.
Toto téma popisuje, jak upgradovat existující projekt SignalR 1.x na SignalR 2.x a jak řešit problémy, ke kterým může dojít během procesu upgradu.
Verze softwaru použité v kurzu
- Visual Studio 2013
- .NET 4.5
- SignalR verze 1 a 2
Použití sady Visual Studio 2012 v tomto kurzu
Pokud chcete v tomto kurzu použít Visual Studio 2012, postupujte takto:
- Aktualizujte Správce balíčků na nejnovější verzi.
- Nainstalujte instalační program webové platformy.
- V instalačním programu webové platformy vyhledejte a nainstalujte ASP.NET and Web Tools 2013.1 pro Visual Studio 2012. Tím se nainstalují šablony sady Visual Studio pro třídy SignalR, jako je Například Hub.
- Některé šablony (například OWIN Startup Class) nebudou k dispozici; místo nich použijte soubor třídy.
Dotazy a komentáře
V komentářích v dolní části stránky nám napište, jak se vám tento kurz líbil a co bychom mohli zlepšit. Pokud máte dotazy, které nesouvisejí přímo s kurzem, můžete je publikovat na fóru ASP.NET SignalR nebo StackOverflow.com.
SignalR 2 nabízí konzistentní prostředí pro vývoj napříč serverovými platformami pomocí OWIN. Tento článek popisuje několik kroků potřebných k aktualizaci aplikace SignalR 1.x na verzi 2.
I když se doporučuje upgradovat aplikace na SignalR 2, signalR 1.x bude i nadále podporován.
Tento kurz popisuje, jak upgradovat aplikaci hostovanou na web na SignalR 2. Aplikace v místním prostředí (ty, které hostují server v konzolové aplikaci, službě Windows nebo jiném procesu) jsou nyní podporovány v rámci signalR 2. Informace o tom, jak začít vytvářet aplikaci v místním prostředí pomocí SignalR 2, najdete v tématu Kurz: SignalR Self-Host.
Obsah
Následující části popisují úlohy související s upgradem projektů SignalR a řešení potíží, které mohou nastat.
Příklad: Upgrade aplikace kurzu Začínáme na SignalR 2
V této části aktualizujete aplikaci vytvořenou ve verzi SignalR 1.x Začínáme kurzu tak, aby používala SignalR 2.
Po dokončení Začínáme kurzu klikněte pravým tlačítkem na projekt a vyberte Vlastnosti. Ověřte, že cílová architektura je nastavena na .NET Framework 4.5.
Otevřete konzolu Správce balíčků. Pomocí následujícího příkazu odeberte z projektu signalR 1.x:
Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
Nainstalujte SignalR 2 pomocí následujícího příkazu:
Install-Package Microsoft.AspNet.SignalR
Na stránce HTML aktualizujte referenční informace ke skriptům pro SignalR tak, aby odpovídaly verzi skriptu, který je teď součástí projektu.
<!--Reference the SignalR library. --> <script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
V globální třídě aplikace odeberte volání MapHubs.
protected void Application_Start(object sender, EventArgs e) { RouteTable.Routes.MapHubs(); }
Klikněte pravým tlačítkem na řešení a vyberte Přidat, Nová položka.... V dialogovém okně vyberte Owin Startup Class (Spouštěcí třída Owin). Pojmenujte novou třídu Startup.cs.
Nahraďte obsah souboru Startup.cs následujícím kódem:
using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(SignalRChat.Startup))] namespace SignalRChat { public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } } }
Atribut sestavení přidá třídu do spouštěcího procesu Owin, který spustí metodu
Configuration
při spuštění Owin. To zase volá metodu ,MapSignalR
která vytváří trasy pro všechna centra SignalR v aplikaci.Spusťte projekt a jako předtím zkopírujte adresu URL hlavní stránky do jiného prohlížeče nebo podokna prohlížeče. Každá stránka bude žádat o uživatelské jméno a zprávy odeslané z každé stránky by měly být viditelné v obou podoknech prohlížeče.
Řešení chyb zjištěných během upgradu
Tato část popisuje problémy, ke kterým může dojít během upgradu. Podrobnější seznam chyb a problémů, ke kterým může dojít u aplikace SignalR, najdete v tématu Řešení potíží se službou SignalR.
"Volání je nejednoznačné mezi následujícími metodami nebo vlastnostmi"
K této chybě dojde v případě, že odkaz na Microsoft.AspNet.SignalR.Owin
není odebrán. Tento balíček je zastaralý. Odkaz musí být odebrán a verze 1.x balíčku SelfHost musí být odinstalována.
Metody centra selhávají bezobslužně
Ověřte, že odkazy na skripty v klientovi jsou aktuální a že OwinStartup
atribut třídy Startup má správné názvy tříd a sestavení pro váš projekt. Zkuste také otevřít adresu rozbočovačů (/signalr/hubs) v prohlížeči; Jakákoli chyba, která se zobrazí, vám nabídne další informace o tom, co se děje.