Compartilhar via


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

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 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.

  1. 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.

  2. Abra o Console do Gerenciador de Pacotes. Remova o SignalR 1.x do projeto usando o seguinte comando:

    Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
    
  3. Instale o SignalR 2 usando o seguinte comando:

    Install-Package Microsoft.AspNet.SignalR
    
  4. 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>
    
  5. Na classe de aplicativo global, remova a chamada para MapHubs.

    protected void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapHubs();
    }
    
  6. 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.

    Captura de tela que mostra a caixa de diálogo Adicionar Novo Item. A classe de inicialização OWIN está selecionada e o ponto de inicialização C S está no campo Nome.

  7. 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 o MapSignalR método , que cria rotas para todos os hubs do SignalR no aplicativo.

  8. 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.