Esporta (0) Stampa
Espandi tutto

Debug di un servizio cloud o di una macchina virtuale in Visual Studio

Aggiornamento: marzo 2014

Visual Studio offre diverse opzioni per il debug dei servizi cloud e delle macchine virtuali di Azure.

In questo argomento sono contenute le sezioni seguenti.

Eseguire il debug del servizio cloud nel computer locale

L'utilizzo dell'emulatore di calcolo di Azure per il debug di un servizio cloud in un sistema locale consente di risparmiare tempo e denaro. Se si esegue il debug di un servizio in locale prima di distribuirlo, è possibile migliorare l'affidabilità e le prestazioni senza i costi riferiti al tempo di calcolo. È tuttavia possibile che alcuni errori si verifichino solo quando un servizio cloud viene eseguito in Azure. È possibile eseguire il debug di questi errori se si abilita il debug remoto al momento della pubblicazione del servizio e quindi si connette il debugger a un'istanza del ruolo.

L'emulatore simula il servizio di calcolo di Azure e viene eseguito nell'ambiente locale per consentire il test e il debug del servizio cloud prima della distribuzione. L'emulatore gestisce il ciclo di vita delle istanze del ruolo e fornisce l'accesso alle risorse simulate, ad esempio l'archiviazione locale. Quando si effettua il debug o si esegue il servizio da Visual Studio, l'emulatore di calcolo viene avviato automaticamente come applicazione in background e, successivamente, il servizio viene distribuito all'emulatore. È possibile utilizzare l'emulatore per visualizzare il servizio mentre è in esecuzione nell'ambiente locale. È possibile eseguire la versione completa o la versione Express dell'emulatore (a partire da Azure 2.3, la versione Express dell'emulatore è quella predefinita). Vedere Utilizzo di Emulator Express per l'esecuzione e il debug in locale di un servizio cloud.

Per eseguire il debug del servizio cloud nel computer locale

  1. Sulla barra dei menu dell'emulatore di calcolo di Azure fare clic su Debug>Debug.

  2. Per visualizzare l'interfaccia utente dell'emulatore di calcolo, aprire il menu di scelta rapida dell'icona di Azure nell'area di notifica e scegliere Mostra interfaccia utente emulatore di calcolo.

    Nel riquadro sinistro dell'interfaccia utente vengono mostrati i servizi attualmente distribuiti nell'emulatore di calcolo e le istanze del ruolo in esecuzione in ogni servizio. È possibile scegliere il servizio o i ruoli per visualizzare le informazioni diagnostiche, sul ciclo di vita e sulla registrazione nel riquadro destro. Se si seleziona il margine superiore di una finestra inclusa, quest'ultima viene espansa per riempire il riquadro di destra.

  3. È possibile eseguire l'applicazione un'istruzione alla volta utilizzando i comandi del menu Debug e impostando punti di interruzione nel codice.

    Mentre si esegue l'applicazione un'istruzione alla volta nel debugger, i riquadri vengono aggiornati con lo stato corrente dell'applicazione. Quando si arresta il debug, la distribuzione dell'applicazione viene eliminata.

    Se nell'applicazione è incluso un ruolo Web e la proprietà Azione di avvio è impostata per l'avvio del Web browser, l'applicazione viene avviata nel browser da Visual Studio.

    Se si modifica il numero di istanze di un ruolo nella configurazione del servizio, è necessario arrestare il servizio cloud e riavviare il debug per poter eseguire il debug di queste nuove istanze del ruolo.

    noteNota
    Quando si arresta l'esecuzione o il debug del servizio, l'emulatore di calcolo locale e l'emulatore di archiviazione non vengono arrestati. Sarà necessario arrestarli in modo esplicito dall'area di notifica.

Debug di un servizio cloud in Azure

Per eseguire il debug di un servizio cloud da un computer remoto è necessario abilitare tale funzionalità in modo esplicito quando si distribuisce il servizio cloud per fare in modo che i servizi necessari, ad esempio msvsmon.exe, vengano installati nelle macchine virtuali che eseguono le istanze del ruolo. Se il debug remoto non è stato abilitato al momento della pubblicazione del servizio, è necessario pubblicare nuovamente il servizio con il debug remoto abilitato.

L'abilitazione del debug remoto per un servizio cloud non comporta un degrado delle prestazioni o costi aggiuntivi. È consigliabile non utilizzare il debug remoto in un servizio di produzione perché potrebbe avere effetti negativi sui client che utilizzano il servizio.

noteNota
Quando si pubblica un servizio cloud da Visual Studio, è possibile abilitare IntelliTrace per qualsiasi ruolo del servizio destinato a .NET Framework 4 o .NET Framework 4.5. Con IntelliTrace è possibile esaminare eventi che si sono verificati in passato in un'istanza del ruolo e riprodurre il contesto dal momento dell'evento. Vedere Debug di un servizio cloud pubblicato con IntelliTrace e Visual Studio e l'articolo relativo al debug con IntelliTrace.

Per abilitare il debug remoto per un servizio cloud

  1. Aprire il menu di scelta rapida per il progetto Azure, quindi scegliere Pubblica.

  2. Selezionare l'ambiente Gestione temporanea e la configurazione Debug.

    Si tratta solo di una linea guida. È possibile decidere di eseguire gli ambienti di test in un ambiente di produzione. Se tuttavia si abilita il debug remoto nell'ambiente di produzione, possono verificarsi effetti negativi per gli utenti. È possibile scegliere la configurazione di rilascio, ma quella di debug consente di semplificare le operazioni di debug.

    Scegliere la configurazione per il debug
  3. Seguire la procedura consueta, selezionando l'ultima casella di controllo nella scheda Impostazioni avanzate.

    Configurazione per il debug

Per connettere il debugger a un servizio cloud in Azure

  1. In Esplora server espandere il nodo per il servizio cloud.

  2. Aprire il menu di scelta rapida per il ruolo o l'istanza di ruolo a cui si desidera collegarlo, quindi scegliere Collega debugger.

    Collega debugger

    Se si esegue il debug di un ruolo, il debugger di Visual Studio si connette a ogni istanza di tale ruolo. Il debugger si interrompe in un punto di interruzione per la prima istanza del ruolo che esegue la riga di codice e soddisfa le condizioni del punto di interruzione. Se si esegue il debug di un'istanza, il debugger si collega solo a tale istanza e si interrompe in un punto di interruzione solo quando tale istanza esegue la riga di codice e soddisfa le condizioni del punto di interruzione.

  3. Dopo la connessione del debugger a un'istanza, eseguire il debug come di consueto.

    Il debugger si connette automaticamente al processo host appropriato per il ruolo. A seconda del ruolo, il debugger si connette a w3wp.exe, WaWorkerHost.exe o WaIISHost.exe. Per verificare il processo a cui è collegato il debugger, espandere il nodo dell'istanza in Esplora server. Per ulteriori informazioni sui processi di Azure, vedere l'articolo relativo all'architettura dei ruoli di Azure.

  4. Per identificare i processi a cui è connesso il debugger, aprire la finestra di dialogo Processi scegliendo Debug, Finestre, Processi sulla barra dei menu. (Tastiera: CTRL+ALT+Z).

    Processi di debug

    Per disconnettere un determinato processo, aprire il menu di scelta rapida corrispondente e scegliere Disconnetti processo. In alternativa, individuare il nodo dell'istanza in Esplora server, individuare il processo, aprire il menu di scelta rapida corrispondente e scegliere Disconnetti processo.

WarningAvviso
Evitare lunghe interruzioni in corrispondenza dei punti di interruzione mentre si esegue il debug remoto. Se un processo si interrompe per più di qualche minuto, Azure lo considera come privo di risposta e interrompe l'invio del traffico a tale istanza. Se l'interruzione dura troppo, msvsmon.exe si disconnette dal processo.

Per disconnettere il debugger da tutti i processi nell'istanza o nel ruolo, aprire il menu di scelta rapida per il ruolo o l'istanza oggetto del debug, quindi scegliere l'opzione per disconnettere il debugger.

Limiti del debug remoto in Azure

Per Azure SDK 4.3, il debug remoto presenta le limitazioni indicate di seguito.

  • Con il debug remoto abilitato, non è possibile pubblicare un servizio cloud in cui un ruolo qualsiasi contiene più di 25 istanze.

  • Il debugger utilizza le porte da 30400 a 30424 e da 31400 a 31424. Se si tenta di utilizzare una qualsiasi di queste porte, non sarà possibile pubblicare il servizio e nel log attività per Azure verrà visualizzato un messaggio di errore simile ai seguenti:

    • Errore durante la convalida del file .cscfg rispetto al file .csdef. L'intervallo di porte riservate 'range' per l'endpoint Microsoft.WindowsAzure.Plugins.RemoteDebugger.Connector del ruolo 'role' si sovrappone a una porta o a un intervallo già definito.

    • Allocazione non riuscita. Riprovare in un secondo momento. Provare a ridurre le dimensioni della macchina virtuale o il numero di istanze di ruolo oppure provare a distribuire in un'area diversa.

Debug di macchine virtuali di Azure

Per eseguire il debug dei programmi in esecuzione nelle macchine virtuali di Azure, è possibile utilizzare Esplora server in Visual Studio. Quando si abilita il debug remoto su una macchina virtuale di Azure, in tale macchina viene installata l'estensione di debug remoto. Successivamente è possibile connettersi ai processi sulla macchina virtuale ed eseguire il debug normalmente.

Per eseguire il debug di una macchina virtuale di Azure

  1. In Esplora server espandere in nodo Macchine virtuali e selezionare il nodo della macchina virtuale di cui si desidera eseguire il debug.

  2. Aprire il menu di scelta rapida e scegliere Abilita debug.

    Alla richiesta di conferma dell'attivazione del debug nella macchina virtuale, fare clic su .

    Verrà installata l'estensione di debug remoto nella macchina virtuale per abilitare il debug.

  3. Al termine dell'installazione dell'estensione di debug remoto, aprire il menu di scelta rapida della macchina virtuale e scegliere Collega debugger.

    Azure ottiene un elenco dei processi nella macchina virtuale e li visualizza nella finestra di dialogo Connetti a processo.

  4. Nella finestra di dialogo Connetti a processo fare clic su Seleziona per limitare l'elenco dei risultati in modo che vengano visualizzati solo i tipi di codice di cui eseguire il debug. È possibile scegliere codice gestito, codice nativo o entrambi.

  5. Fare clic sui processi di cui eseguire il debug nella macchina virtuale, quindi fare clic su Connetti. È possibile ad esempio scegliere il processo w3wp.exe per eseguire il debug di un'app Web nella macchina virtuale. Per ulteriori informazioni, vedere Eseguire il debug di uno o più processi in Visual Studio e l'articolo relativo all'architettura dei ruoli di Azure.

Creare un progetto Web e una macchina virtuale per il debug

Prima di pubblicare il progetto Azure, può essere utile testarlo in un ambiente contenuto che supporti scenari di debug e test e in cui sia possibile installare programmi di test e monitoraggio. Un modo per raggiungere questo obiettivo consiste nell'eseguire il debug remoto dell'app su una macchina virtuale.

I progetti ASP.NET di Visual Studio consentono di creare una pratica macchina virtuale da utilizzare per il test delle app. La macchina virtuale include endpoint solitamente necessari, quali PowerShell, Desktop remoto e WebDeploy.

Per creare un progetto Web e una macchina virtuale per il debug

  1. In Visual Studio creare una nuova applicazione Web ASP.NET.

  2. Nella sezione Azure della finestra di dialogo Nuovo progetto ASP.NET scegliere Macchina virtuale nell'elenco a discesa. Lasciare deselezionata la casella di controllo Crea risorse remote. Fare clic su OK per continuare.

    Verrà visualizzata la finestra di dialogo per la creazione di una macchina virtualein Azure.

    noteNota
    Se non è ancora stato eseguito l'accesso, verrà chiesto di accedere al proprio account Azure.

  3. Selezionare le varie impostazioni per la macchina virtuale e fare clic su OK. Per ulteriori informazioni, vedere Macchine virtuali.

    noteNota
    Il nome immesso come Nome DNS sarà il nome della macchina virtuale.

    Azure crea la macchina virtuale, quindi esegue il provisioning e la configurazione degli endpoint, ad esempio Desktop remoto e Distribuzione Web

  4. Al termine della configurazione della macchina virtuale, selezionare il nodo della macchina virtuale in Esplora server.

  5. Aprire il menu di scelta rapida e scegliere Abilita debug.

    Alla richiesta di conferma dell'attivazione del debug nella macchina virtuale, fare clic su .

    Verrà installata l'estensione di debug remoto nella macchina virtuale per abilitare il debug.

  6. Pubblicare il progetto come illustrato nell'argomento relativo alla procedura per la distribuzione di un progetto Web tramite la pubblicazione con un clic in Visual Studio. Poiché si intende eseguire il debug nella macchina virtuale, nella pagina Impostazioni della configurazione guidata Pubblica sito Web selezionare Debug come configurazione. In questo modo i simboli del codice saranno disponibili durante il debug.

  7. In Opzioni pubblicazione file selezionare Rimuovi file aggiuntivi nella destinazione se il progetto è già stato distribuito in precedenza.

  8. Dopo la pubblicazione del progetto, scegliere Collega debugger dal menu di scelta rapida della macchina virtuale in Esplora server.

    Azure ottiene un elenco dei processi nella macchina virtuale e li visualizza nella finestra di dialogo Connetti a processo.

  9. Nella finestra di dialogo Connetti a processo fare clic su Seleziona per limitare l'elenco dei risultati in modo che vengano visualizzati solo i tipi di codice di cui eseguire il debug. È possibile scegliere codice gestito, codice nativo o entrambi.

  10. Fare clic sui processi di cui eseguire il debug nella macchina virtuale, quindi fare clic su Connetti. È possibile ad esempio scegliere il processo w3wp.exe per eseguire il debug di un'app Web nella macchina virtuale. Per ulteriori informazioni, vedere Eseguire il debug di uno o più processi in Visual Studio.

Vedere anche

Aggiunte alla community

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft