Aggiornamento di progetti SignalR 1. x alla versione 2

di Patrick Fletcher

Avviso

Questa documentazione non è per la versione più recente di SignalR. Esaminare ASP.NET Core SignalR.

Questo argomento descrive come aggiornare un progetto SignalR 1.x esistente a SignalR 2.x e come risolvere i problemi che possono verificarsi durante il processo di aggiornamento.

Versioni software usate nell'esercitazione

Uso di Visual Studio 2012 con questa esercitazione

Per usare Visual Studio 2012 con questa esercitazione, seguire questa procedura:

  • Aggiornare Gestione pacchetti alla versione più recente.
  • Installare il programma di installazione della piattaforma Web.
  • Nel programma di installazione della piattaforma Web cercare e installare ASP.NET and Web Tools 2013.1 per Visual Studio 2012. Verranno installati i modelli di Visual Studio per le classi SignalR, ad esempio Hub.
  • Alcuni modelli (ad esempio OWIN Startup Class) non saranno disponibili; per questi, usare invece un file di classe.

Domande e commenti

Lasciare commenti e suggerimenti su come è piaciuta questa esercitazione e cosa è possibile migliorare nei commenti nella parte inferiore della pagina. Se si hanno domande che non sono direttamente correlate all'esercitazione, è possibile pubblicarle nel forum di ASP.NET SignalR o StackOverflow.com.

SignalR 2 offre un'esperienza di sviluppo coerente tra piattaforme server che usano OWIN. Questo articolo descrive i pochi passaggi necessari per aggiornare un'applicazione SignalR 1.x alla versione 2.

Sebbene sia consigliabile aggiornare le applicazioni a SignalR 2, SignalR 1.x sarà ancora supportato.

Questa esercitazione descrive come aggiornare un'applicazione ospitata sul Web a SignalR 2. Le applicazioni self-hosted (quelle che ospitano un server in un'applicazione console, un servizio Windows o un altro processo) sono ora supportate in SignalR 2. Per informazioni su come iniziare a creare un'applicazione self-hosted con SignalR 2, vedere Esercitazione: Self-Host SignalR.

Contenuto

Le sezioni seguenti descrivono le attività relative all'aggiornamento dei progetti SignalR e come risolvere i problemi che possono verificarsi.

Esempio: Aggiornamento dell'applicazione dell'esercitazione Introduzione a SignalR 2

In questa sezione si aggiornerà l'applicazione creata nella versione SignalR 1.x dell'esercitazione Introduzione per usare SignalR 2.

  1. Al termine dell'esercitazione Introduzione, fare clic con il pulsante destro del mouse sul progetto e scegliere Proprietà. Verificare che il framework di destinazione sia impostato su .NET Framework 4.5.

  2. Aprire la Console di Gestione pacchetti. Rimuovere SignalR 1.x dal progetto usando il comando seguente:

    Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
    
  3. Installare SignalR 2 usando il comando seguente:

    Install-Package Microsoft.AspNet.SignalR
    
  4. Nella pagina HTML aggiornare il riferimento allo script per SignalR in modo che corrisponda alla versione dello script ora incluso nel progetto.

    <!--Reference the SignalR library. -->
    <script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
    
  5. Nella classe applicazione globale rimuovere la chiamata a MapHubs.

    protected void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapHubs();
    }
    
  6. Fare clic con il pulsante destro del mouse sulla soluzione e scegliere Aggiungi, Nuovo elemento. Nella finestra di dialogo selezionare Classe di avvio Owin. Assegnare alla nuova classe il nome Startup.cs.

    Screenshot che mostra la finestra di dialogo Aggiungi nuovo elemento. La classe di avvio OWIN è selezionata e il punto di avvio C S si trova nel campo Nome.

  7. Sostituire il contenuto di Startup.cs con il codice seguente:

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

    L'attributo assembly aggiunge la classe al processo di avvio di Owin, che esegue il Configuration metodo all'avvio di Owin. A sua volta chiama il MapSignalR metodo , che crea route per tutti gli hub SignalR nell'applicazione.

  8. Eseguire il progetto e copiare l'URL della pagina principale in un altro browser o riquadro del browser, come in precedenza. Ogni pagina richiederà un nome utente e i messaggi inviati da ogni pagina devono essere visibili in entrambi i riquadri del browser.

Risoluzione degli errori riscontrati durante l'aggiornamento

Questa sezione descrive i problemi che possono verificarsi durante l'aggiornamento. Per un elenco più completo di errori e problemi che possono verificarsi con un'applicazione SignalR, vedere Risoluzione dei problemi di SignalR.

'La chiamata è ambigua tra i metodi o le proprietà seguenti'

Questo errore si verificherà se non viene rimosso un riferimento a Microsoft.AspNet.SignalR.Owin . Questo pacchetto è deprecato; il riferimento deve essere rimosso e la versione 1.x del pacchetto SelfHost deve essere disinstallata.

I metodi hub hanno esito negativo in modo invisibile all'utente

Verificare che i riferimenti allo script nel client siano aggiornati e che l'attributo OwinStartup per la classe Startup abbia i nomi di classe e assembly corretti per il progetto. Provare anche ad aprire l'indirizzo hub (/signalr/hubs) nel browser; qualsiasi errore visualizzato offrirà altre informazioni su ciò che sta andando storto.any error that appears will offer more information about what's going wrong.