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 è disponibile solo a partire da Visual Studio 2017 Enterprise versione 15.5 o 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. Se si esegue l'aggiornamento da un'installazione precedente di Visual Studio, eseguire il programma di installazione di Visual Studio e controllare il componente Snapshot Debugger nel carico di lavoro ASP.NET e sviluppo Web.
Piano di servizio app di Azure di base o superiore.
La raccolta di snapshot è disponibile per le app Web seguenti in esecuzione nel servizio app di Azure:
- 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.
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 app di Azure.
Scegliere Debug > Collega snapshot Debugger.... Selezionare il servizio app di Azure in cui viene distribuito il progetto e un account di archiviazione di Azure e quindi fare clic su Connetti. Snapshot Debugger supporta anche il servizio Azure Kubernetes e le macchine virtuali di Azure e i set di scalabilità di macchine virtuali.
Importante
La prima volta che si seleziona Collega snapshot debugger, viene richiesto di installare l'estensione del sito Snapshot Debugger nel servizio app di Azure. Questa installazione richiede un riavvio del servizio app di Azure.
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.
Visual Studio è ora in modalità di debug dello snapshot.
La finestra Moduli mostra quando tutti i moduli sono stati caricati per il servizio app di Azure (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 i servizi app. È possibile leggere altri dettagli su questa funzionalità.