Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Debug di un servizio cloud o di una macchina virtuale in Visual Studio

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

Aggiornamento: giugno 2015

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

In questo argomento sono contenute le seguenti sezioni.

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 Uso di Emulator Express per l'esecuzione e il debug in locale di un servizio cloud.

  1. Nella barra dei menu scegliere Debug, Avvia debug per eseguire il progetto servizio cloud di Azure. In alternativa, premere F5.

    Verrà visualizzato un messaggio che indica che l'avvio dell'emulatore di calcolo è in corso. Quando l'emulatore viene avviato, verrà visualizzata l'icona corrispondente nella barra delle applicazioni.

    Emulatore Azure nella barra delle applicazioni
  2. Sulla barra dei menu dell'emulatore di calcolo di Azure fare clic su Debug>Debug.

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

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

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.

  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.

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

    Configurazione per il debug

  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.

    Finestra di dialogo di selezione del tipo di codice

    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.

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.

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.

  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.

    Comando di abilitazione del debug nella macchina virtuale

    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.

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

    Comando di collegamento del 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 eseguire il debug di codice nativo, codice gestito a 32 o 64 bit di o entrambi.

    Finestra di dialogo di selezione del tipo di codice
  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.

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.

  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.

    Finestra di dialogo di creazione del progetto Web ASP.NET

    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.

    Finestra di dialogo di creazione della macchina virtuale in Azure
    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.

    Comando di abilitazione del debug nella macchina virtuale

    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.

    Log attività di Azure
  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.

    Impostazioni di pubblicazione
  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.

    Comando di collegamento del debugger

    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 eseguire il debug di codice nativo, codice gestito a 32 o 64 bit di o entrambi.

    Finestra di dialogo di selezione del tipo di codice
  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

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:
© 2015 Microsoft