Compartir a través de


Actualizar proyectos de SignalR 1.x a la versión 2

por Patrick Fletcher

Advertencia

Esta documentación no se aplica a la última versión de SignalR. Eche un vistazo a SignalR de ASP.NET Core.

En este tema se describe cómo actualizar un proyecto de SignalR 1.x existente a SignalR 2.x y cómo solucionar problemas que pueden surgir durante el proceso de actualización.

Versiones de software usadas en el tutorial

Uso de Visual Studio 2012 con este tutorial

Para usar Visual Studio 2012 con este tutorial, haga lo siguiente:

  • Actualice el Administrador de paquetes a la versión más reciente.
  • Instale el Instalador de plataforma web.
  • En el Instalador de plataforma web, busque e instale ASP.NET and Web Tools 2013.1 para Visual Studio 2012. Con esta acción, se instalarán plantillas de Visual Studio para clases de SignalR como Hub.
  • Algunas plantillas (como Clase de inicio OWIN) no estarán disponibles; en ese caso, prueba a usar un archivo de Clase.

Preguntas y comentarios

Deje sus comentarios sobre este tutorial y sobre lo que podríamos mejorar en los comentarios en la parte inferior de la página. Si tiene alguna pregunta que no esté directamente relacionadas con el tutorial, puede publicarla en el foro de ASP.NET SignalR o en StackOverflow.com.

SignalR 2 ofrece una experiencia de desarrollo coherente entre plataformas de servidor mediante OWIN. En este artículo se describen los pocos pasos necesarios para actualizar una aplicación SignalR 1.x a la versión 2.

Aunque se recomienda actualizar las aplicaciones a SignalR 2, se seguirá admitiendo SignalR 1.x.

En este tutorial se describe cómo actualizar una aplicación hospedada en web a SignalR 2. Ahora se admiten en SignalR 2 las aplicaciones autohospedadas (aquellas que hospedan un servidor en una aplicación de consola, servicio de Windows u otro proceso). Para obtener información sobre cómo empezar a crear una aplicación autohospedada con SignalR 2, consulte Tutorial: Autohospedaje de SignalR.

Contenido

En las secciones siguientes se describen las tareas relacionadas con la actualización de proyectos de SignalR y cómo solucionar problemas que pueden surgir.

Ejemplo: Actualización de la aplicación del tutorial de introducción a SignalR 2

En esta sección, actualizará la aplicación creada en la versión SignalR 1.x del tutorial de introducción para usar SignalR 2.

  1. Cuando haya terminado el tutorial introducción, haga clic con el botón derecho en el proyecto y seleccione Propiedades. Compruebe que la plataforma de destino esté establecida en .NET Framework 4.5.

  2. Abra la Consola del administrador de paquetes. Quite SignalR 1.x del proyecto mediante el siguiente comando:

    Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
    
  3. Instale SignalR 2 mediante el siguiente comando:

    Install-Package Microsoft.AspNet.SignalR
    
  4. En la página HTML, actualice la referencia de script de SignalR para que coincida con la versión del script que ahora se incluye en el proyecto.

    <!--Reference the SignalR library. -->
    <script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
    
  5. En la clase de aplicación global, quite la llamada a MapHubs.

    protected void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapHubs();
    }
    
  6. Haga clic con el botón derecho en la solución y seleccione Agregar y Nuevo elemento... En el cuadro de diálogo, seleccione Clase de inicio de Owin. Asigne a la nueva clase el nombre Startup.cs.

    Screenshot that shows the Add New Item dialog box. OWIN Startup class is selected and Startup dot C S is in the Name field.

  7. Reemplace el contenido de Startup.cs por el código siguiente:

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

    El atributo de ensamblado agrega la clase al proceso de inicio de Owin, que ejecuta el método Configuration cuando se inicia Owin. Esto, a su vez, llama al método MapSignalR, que crea rutas para todos los centros de conectividad de SignalR de la aplicación.

  8. Ejecute el proyecto y copie la dirección URL de la página principal en otro explorador o panel del explorador, como antes. Cada página solicitará un nombre de usuario y los mensajes enviados desde cada página deben estar visibles en ambos paneles del explorador.

Solución de errores detectados durante la actualización

En esta sección se describen los problemas que pueden surgir durante la actualización. Para obtener una lista más completa de errores y problemas que pueden producirse con una aplicación SignalR, consulte Solución de problemas de SignalR.

"La llamada es ambigua entre los métodos o las propiedades".

Este error se producirá si no se quita una referencia a Microsoft.AspNet.SignalR.Owin. Este paquete está en desuso; la referencia debe quitarse y se debe desinstalar la versión 1.x del paquete autohospedado.

Los métodos del centro de conectividad producen un error de forma silenciosa.

Compruebe que las referencias de script en el cliente están actualizadas y que el atributo OwinStartup de la clase Startup tiene los nombres de ensamblado y clase correctos para el proyecto. Además, intente abrir la dirección de los centros de conectividad (/signalr/hubs) en el explorador; cualquier error que aparezca ofrecerá más información sobre lo que va mal.