Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Snapshot Debugger crea uno snapshot delle app in produzione quando viene eseguito il codice a cui si è interessati. Per indicare al debugger di creare uno snapshot, imposta snappoint e logpoint nel codice. Il debugger consente di visualizzare esattamente ciò che è andato storto, senza influire sul traffico dell'applicazione di produzione. Snapshot Debugger consente di ridurre notevolmente il tempo necessario per risolvere i problemi che si verificano negli ambienti di produzione.
I punti di acquisizione snapshot e i punti di inserimento istruzione di registrazione sono simili ai punti di interruzione, ma a differenza dei punti di interruzione, l'applicazione non viene interrotta al raggiungimento dei punti di acquisizione snapshot. In genere, l'acquisizione di uno snapshot in un punto di snappoint richiede 10-20 millisecondi.
In questa esercitazione si eseguiranno le seguenti attività:
- Avvia il Snapshot Debugger
- Impostare un punto di riferimento e visualizzare un'istantanea
- Impostare un punto di log
Prerequisiti
Snapshot Debugger per macchine virtuali di Azure e set di scalabilità di macchine virtuali di Azure è disponibile solo per Visual Studio 2019 Enterprise o versione successiva con il carico di lavoro Sviluppo di Azure. (Nella scheda Singoli componenti trovi sotto Debug e test>il Debugger di snapshot.)
Se non è già installato, installare Visual Studio 2019 Enterprise.
La raccolta di snapshot è disponibile per le seguenti app web delle macchine virtuali di Azure e set di scalabilità delle macchine virtuali.
- ASP.NET applicazioni in esecuzione in .NET Framework 4.6.1 o versione successiva.
- Applicazioni ASP.NET Core in esecuzione su .NET Core 2.0 o versione successiva su Windows.
Annotazioni
Visual Studio Enterprise in esecuzione in Windows a 32 bit non sarà in grado di visualizzare gli snapshot.
Aprire il progetto e avviare snapshot debugger
Apri il progetto per cui desideri scattare uno snapshot durante il debug.
Importante
Per eseguire lo snapshot del debug, è necessario aprire la stessa versione del codice sorgente pubblicata nel servizio Macchina virtuale di Azure\Set di scalabilità di macchine virtuali.
Scegliere Debug > Collega Snapshot Debugger.... Selezionare la macchina virtuale di Azure\Set di scalabilità di macchine virtuali a cui è distribuita l'app Web e un account di archiviazione di Azure e quindi fare clic su Collega. Snapshot Debugger supporta anche il servizio Azure Kubernetes e il servizio app di Azure.
Importante
La prima volta che si seleziona Collega snapshot Debugger per la macchina virtuale, IIS viene riavviato automaticamente. La prima volta che si seleziona Collega snapshot Debugger per i set di scalabilità di macchine virtuali, è necessario eseguire l'aggiornamento manuale di ogni istanza dei set di scalabilità di macchine virtuali.
Annotazioni
(Visual Studio 2019 versione 16.2 e successive) Snapshot Debugger ha abilitato il supporto cloud di Azure. Assicurarsi che sia la risorsa di Azure che l'account di archiviazione di Azure selezionati si trovino nello stesso cloud. Contattare l'amministratore di Azure se si hanno domande sulle configurazioni di conformità di Azure dell'organizzazione.
I metadati per i moduli non verranno inizialmente attivati, passano all'app Web e il pulsante Avvia raccolta diventerà attivo. Visual Studio è ora in modalità di debug dello snapshot.
Annotazioni
Per VMSS, l'utente deve aggiornare manualmente le istanze nei suoi set di scalabilità di macchine virtuali dopo aver collegato lo Snapshot Debugger per la prima volta.
La finestra Moduli mostra quando tutti i moduli sono stati caricati per la macchina virtuale di Azure\Set di scalabilità di macchine virtuali (scegliere Debug > moduli Windows > per aprire questa finestra).
Impostare un punto di ancoraggio
Nell'editor di codice fare clic sulla barra sinistra accanto a una riga di codice a cui si è interessati per impostare un punto di ancoraggio. Assicurarsi che sia il codice che si sa che verrà eseguito.
Fare clic su Avvia raccolta per attivare il punto di ancoraggio.
Suggerimento
Non è possibile eseguire passaggi durante la visualizzazione di uno snapshot, ma è possibile inserire più punti di interruzione nel codice per seguire l'esecuzione su diverse righe di codice. Se nel codice sono presenti più snappoint, lo Snapshot Debugger verifica che gli snapshot corrispondenti provengano dalla stessa sessione di un utente finale. Snapshot Debugger esegue questa operazione anche se sono presenti molti utenti che accedono all'app.
Acquisisci un'istantanea
Dopo aver impostato un punto di ancoraggio, è possibile generare manualmente uno snapshot passando alla visualizzazione del browser del sito Web ed eseguendo la riga di codice contrassegnata o attendere che gli utenti generino uno dal relativo utilizzo del sito.
Esaminare i dati dello snapshot
Quando viene raggiunto il punto di ancoraggio, viene visualizzato uno snapshot nella finestra Strumenti di diagnostica. Per aprire questa finestra, scegliere Debug > Windows > Mostra strumenti di diagnostica.
Fare doppio clic sul punto di ancoraggio per aprire lo snapshot nell'editor di codice.
Da questa visualizzazione, è possibile passare il mouse sulle variabili per vedere i DataTips, usare le finestre Variabili locali, Espressioni da osservare, Call Stack e anche valutare le espressioni.
Il sito Web stesso è ancora attivo e gli utenti finali non sono interessati. Per impostazione predefinita viene acquisito un solo snapshot per ogni punto di ancoraggio: dopo che uno snapshot è stato acquisito, il punto di ancoraggio viene disattivato. Per acquisire un altro snapshot nel punto di ancoraggio, è possibile riattivare il punto di ancoraggio facendo clic su Aggiorna raccolta.
Puoi anche aggiungere più punti di snappaggio alla tua app e attivarli con il pulsante Aggiorna raccolta.
Hai bisogno di aiuto? Vedere le pagine Risoluzione dei problemi e problemi noti e domande frequenti per il debug di snapshot .
Impostare un punto di ancoraggio condizionale
Se è difficile ricreare uno stato specifico nell'app, è consigliabile usare un punto di ancoraggio condizionale. I punti di ancoraggio condizionali consentono di controllare quando creare uno snapshot, ad esempio quando una variabile contiene un valore specifico da controllare. È possibile impostare condizioni usando espressioni, filtri o conteggi.
Per creare un punto di ancoraggio condizionale
Fare clic con il pulsante destro del mouse su un'icona del punto di ancoraggio (sfera vuota) e scegliere Impostazioni.
Nella finestra delle impostazioni del punto di ancoraggio digitare un'espressione.
Nella figura precedente lo snapshot viene acquisito solo per il punto di ancoraggio quando
visitor.FirstName == "Dan"
.
Impostare un punto di log
Oltre a creare uno snapshot quando viene raggiunto un punto di ancoraggio, è anche possibile configurare un punto di ancoraggio per registrare un messaggio, ovvero creare un punto di log. È possibile impostare i punti di log senza dover ridistribuire l'app. I punti di log vengono eseguiti virtualmente e non causano alcun impatto o effetti collaterali per l'applicazione in esecuzione.
Per creare un punto di registrazione
Fare clic con il pulsante destro del mouse su un'icona del punto di ancoraggio (esagono blu) e scegliere Impostazioni.
Nella finestra delle impostazioni del punto di ancoraggio selezionare Azioni.
Nel campo Messaggio è possibile immettere il nuovo messaggio di log da registrare. È anche possibile valutare le variabili nel tuo messaggio di log inserendole all'interno di parentesi graffe.
Se si sceglie Invia alla finestra di output, quando viene raggiunto il punto di log, il messaggio viene visualizzato nella finestra Strumenti di diagnostica.
Se si sceglie Invia al log applicazioni, quando viene raggiunto il punto di log, il messaggio viene visualizzato in qualsiasi punto in cui è possibile visualizzare i messaggi da
System.Diagnostics.Trace
(oILogger
in .NET Core), ad esempio App Insights.
Contenuti correlati
In questa esercitazione si è appreso come usare snapshot debugger per macchine virtuali di Azure e set di scalabilità di macchine virtuali di Azure. È possibile leggere altri dettagli su questa funzionalità.