Atualização de projetos do SignalR 1.x para a versão 2
por Patrick Fletcher
Aviso
Esta documentação não é para a versão mais recente do SignalR. Dê uma olhada em ASP.NET Core SignalR.
Este tópico descreve como atualizar um projeto existente do SignalR 1.x para o SignalR 2.x e como solucionar problemas que podem surgir durante o processo de atualização.
Versões de software usadas no tutorial
- Visual Studio 2013
- .NET 4.5
- Versões 1 e 2 do SignalR
Usando o Visual Studio 2012 com este tutorial
Para usar o Visual Studio 2012 com este tutorial, faça o seguinte:
- Atualize o Gerenciador de Pacotes para a versão mais recente.
- Instale o Web Platform Installer.
- No Web Platform Installer, pesquise e instale ASP.NET and Web Tools 2013.1 para Visual Studio 2012. Isso instalará modelos do Visual Studio para classes do SignalR, como Hub.
- Alguns modelos (como a Classe de Inicialização OWIN) não estarão disponíveis; para eles, use um arquivo de classe.
Perguntas e comentários
Deixe comentários sobre como você gostou deste tutorial e o que poderíamos melhorar nos comentários na parte inferior da página. Se você tiver dúvidas que não estão diretamente relacionadas ao tutorial, poderá postá-las no fórum do ASP.NET SignalR ou StackOverflow.com.
O SignalR 2 oferece uma experiência de desenvolvimento consistente entre plataformas de servidor usando o OWIN. Este artigo descreve as poucas etapas necessárias para atualizar um aplicativo SignalR 1.x para a versão 2.
Embora seja recomendável atualizar aplicativos para o SignalR 2, o SignalR 1.x ainda terá suporte.
Este tutorial descreve como atualizar um aplicativo hospedado na Web para o SignalR 2. Aplicativos auto-hospedados (aqueles que hospedam um servidor em um aplicativo de console, serviço Windows ou outro processo) agora têm suporte no SignalR 2. Para obter informações sobre como começar a criar um aplicativo auto-hospedado com o SignalR 2, consulte Tutorial: Auto-host do SignalR.
Sumário
As seções a seguir descrevem as tarefas envolvidas com a atualização de projetos do SignalR e como solucionar problemas que podem surgir.
- Exemplo: atualizando o tutorial de Introdução para o SignalR 2
- Solução de problemas de erros encontrados durante a atualização
Exemplo: atualizando o aplicativo de tutorial Introdução para o SignalR 2
Nesta seção, você atualizará o aplicativo criado na versão SignalR 1.x do Tutorial do Introdução para usar o SignalR 2.
Depois de concluir o tutorial Introdução, clique com o botão direito do mouse no projeto e selecione Propriedades. Verifique se a estrutura de destino está definida como .NET Framework 4.5.
Abra o Console do Gerenciador de Pacotes. Remova o SignalR 1.x do projeto usando o seguinte comando:
Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
Instale o SignalR 2 usando o seguinte comando:
Install-Package Microsoft.AspNet.SignalR
Na página HTML, atualize a referência de script do SignalR para corresponder à versão do script agora incluída no projeto.
<!--Reference the SignalR library. --> <script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
Na classe de aplicativo global, remova a chamada para MapHubs.
protected void Application_Start(object sender, EventArgs e) { RouteTable.Routes.MapHubs(); }
Clique com o botão direito do mouse na solução e selecione Adicionar, Novo Item.... Na caixa de diálogo, selecione Classe de Inicialização Owin. Nomeie a nova classe Startup.cs.
Substitua o conteúdo de Startup.cs pelo seguinte código:
using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(SignalRChat.Startup))] namespace SignalRChat { public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } } }
O atributo assembly adiciona a classe ao processo de inicialização do Owin, que executa o
Configuration
método quando Owin é iniciado. Isso, por sua vez, chama oMapSignalR
método , que cria rotas para todos os hubs do SignalR no aplicativo.Execute o projeto e copie a URL da página main em outro navegador ou painel do navegador, como antes. Cada página solicitará um nome de usuário, e as mensagens enviadas de cada página devem estar visíveis em ambos os painéis do navegador.
Solução de problemas de erros encontrados durante a atualização
Esta seção descreve os problemas que podem surgir durante a atualização. Para obter uma lista mais abrangente de erros e problemas que podem ocorrer com um aplicativo SignalR, consulte Solução de problemas do SignalR.
"A chamada é ambígua entre os métodos ou propriedades a seguir"
Esse erro ocorrerá se uma referência a Microsoft.AspNet.SignalR.Owin
não for removida. Este pacote foi preterido; a referência deve ser removida e a versão 1.x do pacote SelfHost deve ser desinstalada.
Os métodos de hub falham silenciosamente
Verifique se as referências de script em seu cliente estão atualizadas e se o OwinStartup
atributo para sua classe de inicialização tem os nomes de classe e assembly corretos para seu projeto. Além disso, tente abrir o endereço dos hubs (/signalr/hubs) no navegador; qualquer erro exibido oferecerá mais informações sobre o que está dando errado.