Risolvere i problemi di un'app nel Servizio app di Azure tramite Visual Studio

Panoramica

Questa esercitazione illustra come usare gli strumenti di Visual Studio che consentono di eseguire il debug di un'app nel Servizio app tramite la modalità debug in remoto oppure visualizzando i log dell'applicazione e i log del server Web.

Si apprenderà:

  • Usare le funzioni di gestione app disponibili in Visual Studio.
  • Usare la vista remota di Visual Studio per apportare modifiche rapide a un'app remota.
  • Eseguire la modalità debug in remoto mentre il progetto è in esecuzione in Azure, sia per un'app che per un processo Web.
  • Creare log di traccia dell'applicazione e visualizzarli mentre vengono creati dall'applicazione.
  • Visualizzare i log del server Web, con i messaggi di errore dettagliati e la traccia delle richieste non riuscite.
  • Inviare i log di diagnostica a un account di archiviazione di Azure e visualizzarli nell'account.

Se si dispone di Visual Studio Ultimate, è possibile usare anche IntelliTrace per il debug. IntelliTrace non è illustrato in questa esercitazione.

Prerequisiti

Per questa esercitazione si presuppone che siano stati configurati l'ambiente di sviluppo, il progetto Web e l'app del Servizio app come descritto in Create an ASP.NET app in Azure App Service (Creare un'app ASP.NET nel Servizio app di Azure). Per le sezioni sui processi Web, sarà necessaria l'applicazione creata in Introduzione ad Azure WebJobs SDK.

Gli esempi di codice illustrati nell'esercitazione sono relativi ad applicazioni Web MVC scritte in C#, ma le procedure di risoluzione dei problemi sono identiche per le applicazioni di Visual Basic e Web Form.

L'esercitazione presuppone che si stia usando Visual Studio 2019.

La funzionalità dei log in streaming può essere utilizzata solo per le applicazioni destinate a .NET Framework 4 o versione successiva.

Configurazione e gestione di app

Visual Studio fornisce l'accesso a un subset di funzioni di gestione e impostazioni di configurazione di app disponibili nel portale di Azure. In questa sezione verranno esaminate le opzioni disponibili tramite Esplora server. Per visualizzare le funzionalità di integrazione di Azure più recenti, provare anche Cloud Explorer . È possibile aprire entrambe le finestre dal menu Visualizza .

  1. Se si è già effettuato l'accesso ad Azure in Visual Studio, fare clic on il pulsante destro del mouse su Azure e selezionare Connetti a Sottoscrizione di Microsoft Azure in Esplora Server.

    In alternativa, installare un certificato di gestione che consenta l'accesso al proprio account. Se si sceglie di installare un certificato, fare clic con il pulsante destro del mouse sul nodo Azure in Esplora server e quindi scegliere Gestisci e filtra sottoscrizioni dal menu di scelta rapida. Nella finestra di dialogo Gestisci sottoscrizioni Microsoft Azure fare clic sulla scheda Certificati, quindi fare clic su Importa. Attenersi alle istruzioni per scaricare e importare un file di sottoscrizione, denominato anche file .publishsettings per l'account Azure.

    Nota

    Se si sceglie di scaricare un file di sottoscrizione, salvarlo in una cartella all'esterno delle directory del codice sorgente, ad esempio nella cartella Download, quindi eliminarlo al termine dell'importazione. Un utente malintenzionato che riesce ad accedere al file di sottoscrizione può modificare, creare ed eliminare i servizi di Azure.

    Per altre informazioni sulla connessione alle risorse di Azure da Visual Studio, vedere Assegnare ruoli di Azure usando il portale di Azure.

  2. In Esplora server espandere Azure e quindi Servizio app.

  3. Espandere il gruppo di risorse che include l'app creata in Create an ASP.NET app in Azure App Service (Creare un'app ASP.NET nel Servizio app di Azure), quindi fare clic con il pulsante destro del mouse sul nodo dell'app e selezionare Visualizza impostazioni.

    View Settings in Server Explorer

    Verrà visualizzata la scheda App Web di Azure in cui è possibile vedere le attività di gestione e configurazione di app disponibili in Visual Studio.

    Azure Web App window

    In questa esercitazione verranno usati gli elenchi a discesa relativi a registrazione e traccia. Verrà inoltre utilizzato il debug remoto, che tuttavia verrà abilitato con un metodo diverso.

    Per informazioni sulle caselle Stringhe di Impostazioni e Connessione ion in questa finestra, vedere App Azure Service: How Application Strings and Connessione ion Strings Work(Come funzionano le stringhe dell'applicazione e le stringhe di Connessione ion).

    Se si vuole eseguire un'attività di gestione di app che non può essere completata in questa finestra, fare clic su Apri nel portale di gestione per aprire una finestra del browser nel portale di Azure.

Accedere ai file dell'app in Esplora server

In genere, un progetto Web viene distribuito con il flag customErrors impostato su On o RemoteOnly nel file Web.config, il che significa che quando si verifica un errore non vengono visualizzati messaggi utili. Per molti errori, infatti, verrà visualizzata una pagina simile a una di quelle illustrate di seguito:

Errore del server nell'applicazione '/':

Screenshot showing a Server Error in '/' Application error in a web browser.

Si è verificato un errore:

Screenshot showing an example of a generic error occurring in a web browser.

Impossibile visualizzare la pagina

Screenshot showing a message that reads **The website cannot display the page error in a web browser**.

Spesso, il modo più semplice per trovare la causa dell'errore consiste nell'abilitare i messaggi di errore dettagliati, come illustrato nella prima schermata precedente. In questo caso, è necessario apportare una modifica nel file Web.config distribuito. Che richiede una modifica nel file Web. config distribuito. È possibile modificare il file Web.config nel progetto e ridistribuire il progetto oppure creare una trasformazione e distribuire una Web.config compilazione di debug, ma esiste un modo più rapido: in Esplora soluzioni, è possibile visualizzare e modificare direttamente i file nell'app remota usando la funzionalità di visualizzazione remota.

  1. In Esplora server espandere Azure e Servizio app, quindi espandere il gruppo di risorse in cui si trova l'app e infine espandere il nodo dell'app.

    Verranno visualizzati i nodi che forniscono l'accesso ai file di contenuto e ai file di log dell'app.

  2. Espandere il nodo File e fare doppio clic sul file Web.config .

    Open Web.config

    Il file Web.config verrà aperto in Visual Studio dall'app remota e accanto al nome del file, nella barra del titolo, verrà visualizzata l'indicazione [Remoto].

  3. Aggiungere la riga seguente all'elemento system.web :

    <customErrors mode="Off"></customErrors>

    Edit Web.config

  4. Aggiornare il browser in cui viene visualizzato il messaggio di errore poco utile. A questo punto verrà visualizzato un messaggio di errore dettagliato, come illustrato nell'esempio seguente:

    Detailed error message

    L'errore illustrato è stato creato aggiungendo la riga mostrata in rosso a Views\Home\Index.cshtml.

La modifica del file Web.config è solo un esempio degli scenari in cui la possibilità di leggere e modificare file nell'app del Servizio app semplifica la risoluzione dei problemi.

Debug remoto di app

Se il messaggio di errore dettagliato non fornisce una quantità sufficiente di informazioni e non è possibile ricreare l'errore in locale, un altro modo per risolvere i problemi consiste nell'esecuzione in modalità debug in remoto. È possibile impostare punti di interruzione, manipolare direttamente la memoria, esaminare il codice e cambiarne il percorso.

Il debug remoto non funziona nelle edizioni Express di Visual Studio.

Questa sezione illustra come eseguire il debug in modalità remota usando il progetto creato in Create an ASP.NET app in Azure App Service (Creare un'app ASP.NET nel Servizio app di Azure).

  1. Aprire il progetto Web creato in Create an ASP.NET app in Azure App Service (Creare un'app ASP.NET nel Servizio app di Azure).

  2. Aprire il file Controllers\HomeController.cs.

  3. Eliminare il metodo About() e sostituirlo con il codice seguente.

    public ActionResult About()
    {
        string currentTime = DateTime.Now.ToLongTimeString();
        ViewBag.Message = "The current time is " + currentTime;
        return View();
    }
    
  4. Impostare un punto di interruzione sulla riga ViewBag.Message.

  5. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto, quindi scegliere Pubblica.

  6. Nell'elenco a discesa del Profilo selezionare lo stesso profilo usato in Create an ASP.NET app in Azure App Service (Creare un'app ASP.NET nel Servizio app di Azure). Quindi fare clic su Impostazioni.

  7. Nella finestra di dialogo Pubblica fare clic sulla scheda Impostazioni, sostituire Configurazione con Debug e quindi fare clic su Salva.

    Publish in debug mode

  8. Fare clic su Pubblica. Al termine della distribuzione, quando il browser si apre all'URL di Azure dell'app, chiudere il browser.

  9. In Esplora server fare clic con il pulsante destro del mouse sull'app, quindi fare clic su Collega debugger.

    Screenshot of the Server Explorer window showing an app selected and then clicking Attach Debugger.

    Il browser si aprirà automaticamente nella home page con Azure in esecuzione. Può essere necessario attendere circa 20 secondi durante la configurazione del server per il debug. Questo ritardo si verifica solo alla prima esecuzione in modalità debug in un'app in un periodo di 48 ore. Quando si avvia il debug di nuovo nello stesso periodo, non c'è un ritardo.

    Nota

    In caso di problemi di avvio del debugger, provare a eseguire questa operazione con Cloud Explorer anziché con Esplora server.

  10. Scegliere About dal menu.

    Visual Studio si interrompe in corrispondenza del punto di interruzione e il codice viene eseguito in Azure, non nel computer locale.

  11. Passare il puntatore sulla variabile currentTime per visualizzare il valore relativo all'ora.

    View variable in debug mode running in Azure

    L'ora visualizzata corrisponde a quella del server Azure, che può essere in un fuso orario diverso rispetto al computer locale.

  12. Immettere un nuovo valore per la variabile currentTime , ad esempio "In esecuzione in Azure".

  13. Premere F5 per continuare con l'esecuzione.

    Nella pagina About in esecuzione in Azure verrà ora visualizzato il nuovo valore immesso nella variabile currentTime.

    About page with new value

Debug remoto di processi Web

Questa sezione illustra come eseguire il debug remoto usando il progetto e l'app creati in Introduzione ad Azure WebJobs SDK.

Le funzionalità illustrate in questa sezione sono disponibili solo in Visual Studio 2013 con Update 4 o successivo.

Il debug remoto funziona solo con processi Web continui. Processi Web pianificata e su richiesta non supporta il debug.

  1. Aprire il progetto Web creato in Introduzione ad Azure WebJobs SDK.

  2. Nel progetto ContosoAdsWebJob aprire Functions.cs.

  3. Impostare un punto di interruzione sulla prima istruzione nel metodo GenerateThumbnail.

    Set breakpoint

  4. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto Web (non sul progetto processo Web), quindi scegliere Pubblica.

  5. Nell'elenco a discesa Profilo selezionare il nome del profilo usato in Introduzione a Azure WebJobs SDK.

  6. Fare clic sulla scheda Impostazioni, sostituire Configurazione con Debug e quindi fare clic su Pubblica.

    Visual Studio distribuisce i progetti Web e di processo Web e il browser si apre all'URL di Azure dell'app.

  7. In Esplora server espandere Azure > servizio app > gruppo di risorse > l'app > WebJobs > Continuous e quindi fare clic con il pulsante destro del mouse su ContosoAdsWebJob.

  8. Fare clic su Collega debugger.

    Screenshot of Server Explorer showing ContosoAdsWebJob selected in the drop-down menu and Attach Debugger selected.

    Il browser si aprirà automaticamente nella home page con Azure in esecuzione. Può essere necessario attendere circa 20 secondi durante la configurazione del server per il debug. Questo ritardo si verifica solo alla prima esecuzione in modalità debug in un'app in un periodo di 48 ore. Quando si avvia il debug di nuovo nello stesso periodo, non c'è un ritardo.

  9. Nel Web browser aperto alla home page di Contoso Ads creare un nuovo annuncio.

    La creazione di un annuncio crea un messaggio della coda, che verrà prelevato dal processo Web ed elaborato. Quando SDK di Processi Web chiama la funzione per elaborare il messaggio in coda, il codice raggiunge il punto di interruzione.

  10. Quando il debugger si interrompe al punto di interruzione, è possibile esaminare e modificare i valori delle variabili, mentre il programma è in esecuzione nel cloud. Nell'illustrazione seguente il debugger mostra il contenuto dell'oggetto blobInfo passato al metodo GenerateThumbnail.

    blobInfo object in debugger

  11. Premere F5 per continuare con l'esecuzione.

    Il metodo GenerateThumbnail termina la creazione dell'anteprima.

  12. Nel browser aggiornare la pagina di indice per visualizzare l'anteprima.

  13. In Visual Studio premere MAIUSC+F5 per interrompere il debug.

  14. In Esplora server fare clic con il pulsante destro del mouse sul nodo ContosoAdsWebJob e fare clic su Visualizza dashboard.

  15. Accedere con le credenziali di Azure e quindi fare clic sul nome del processo Web per passare alla pagina del processo Web.

    Click ContosoAdsWebJob

    Il dashboard mostra che la funzione GenerateThumbnail è stata eseguita di recente.

    La volta successiva che si farà clic su Visualizza dashboard, non sarà necessario eseguire l'accesso e il browser passerà direttamente alla pagina del processo Web.

  16. Fare clic sul nome della funzione per visualizzare i dettagli sull'esecuzione della funzione.

    Function details

Se la funzione ha scritto dei log, è possibile fare clic su ToggleOutput per visualizzarli.

Note sul debug remoto

  • L'esecuzione in modalità debug in produzione non è una scelta consigliata. Se l'app di produzione non viene ampliata con più istanze del server, il debug impedisce al server Web di rispondere ad altre richieste. Se si dispone di più istanze di server Web, quando si collega il debugger si otterrà un'istanza casuale e non esiste alcun modo per assicurarsi che le richieste successive del browser andranno nella stessa istanza. Inoltre, in genere non viene distribuita una build di debug in produzione e le ottimizzazioni del compilatore per le build di rilascio non consentono di visualizzare il codice sorgente riga per riga. Per la risoluzione dei problemi in produzione, la risorsa ottimale è costituita dai log di traccia dell'applicazione e dai log del server Web.

  • Evitare interruzioni prolungate in corrispondenza dei punti di interruzione durante il debug remoto. In Azure i processi interrotti per più di alcuni minuti vengono considerati come processi che non rispondono e vengono arrestati.

  • Durante il debug, il server invia i dati a Visual Studio, con possibili implicazioni sui costi della larghezza di banda. Per informazioni sui costi della larghezza di banda, vedere Prezzi di Azure.

  • Assicurarsi che l'attributo debug dell'elemento compilation nel file Web.config sia impostato su True. Questa è l'impostazione predefinita quando si pubblica una configurazione di build di debug.

    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>
    
  • Se il debugger non passa da un'istruzione all'altra del codice da sottoporre a debug, può essere necessario modificare l'impostazione di Just My Code. Per altre informazioni, vedere Specificare se eseguire il debug del solo codice utente tramite Just My Code in Visual Studio.

  • Quando si abilita la funzionalità di debug remoto, sul server viene avviato un timer. Dopo 48 ore la funzionalità viene automaticamente disattivata. Questo limite di 48 ore viene impostato per motivi di sicurezza e prestazioni. È possibile riattivare facilmente la funzionalità tutte le volte che si desidera. È invece consigliabile lasciarla disabilitata quando non si esegue attivamente il debug.

  • È possibile collegare manualmente il debugger a qualsiasi processo, non solo al processo dell'app (w3wp.exe). Per ulteriori informazioni su come utilizzare la modalità debug in Visual Studio, vedere Debug in Visual Studio.

Panoramica dei log di diagnostica

Un'applicazione ASP.NET in esecuzione in un'app del Servizio app può creare i tipi di log seguenti:

  • Log di traccia dell'applicazione
    L'applicazione crea questi log chiamando i metodi della classe System.Diagnostics.Trace .
  • Log del server Web
    Il server Web crea una voce di registro per ogni richiesta HTTP inviata all'app.
  • Log dei messaggi di errore dettagliati
    Il server Web crea una pagina HTML con alcune informazioni aggiuntive relative alle richieste HTTP non riuscite, ovvero quelle che generano un codice di stato pari ad almeno 400.
  • Log di traccia delle richieste non riuscite
    Il server Web crea un file XML con informazioni di traccia dettagliate per le richieste HTTP non riuscite. Fornisce inoltre un file XSL per formattare il file XML in un browser.

Poiché la registrazione influisce sulle prestazioni dell'app, Azure offre la possibilità di abilitare o disabilitare ogni tipo di log in base alle necessità. Per i log dell'applicazione, è possibile specificare che vengano creati solo quelli superiori a un determinato livello di gravità. Quando si crea una nuova app, per impostazione predefinita la registrazione è disabilitata.

I log vengono scritti nei file della cartella LogFiles nel file system dell'app e sono accessibili tramite FTP. I log del server Web e dell'applicazione possono anche essere scritti in un account di archiviazione di Azure. Negli account di archiviazione è possibile mantenere una quantità di log maggiore rispetto a quella consentita nel file system. Se si utilizza il file system, il limite massimo corrisponde a 100 megabyte di log. I log del file system sono solo per la conservazione a breve termine. Azure elimina i file di log precedenti per liberare spazio per i nuovi file dopo il raggiungimento del limite.

Creazione e visualizzazione dei log di traccia dell'applicazione

In questa sezione vengono eseguite le attività seguenti:

  • Aggiungere le istruzioni di traccia al progetto Web creato in Introduzione ad Azure e ASP.NET.
  • Visualizzazione dei log quando si esegue il progetto in locale.
  • Visualizzazione dei log mentre vengono generati dall'applicazione in esecuzione in Azure.

Per informazioni su come creare i log applicazioni nei processi Web, vedere Come usare il servizio di archiviazione di accodamento di Azure con WebJobs SDK - Come scrivere i log. Le seguenti istruzioni per visualizzare i log e controllare come vengono archiviati in Azure si applicano anche ai log delle applicazioni creati dai processi Web.

Aggiungere istruzioni di traccia all'applicazione

  1. Aprire Controllers\HomeController.cs e sostituire i metodi Index, About e Contact con il codice riportato di seguito per aggiungere istruzioni Trace e un'istruzione using per System.Diagnostics:

    public ActionResult Index()
    {
        Trace.WriteLine("Entering Index method");
        ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
        Trace.TraceInformation("Displaying the Index page at " + DateTime.Now.ToLongTimeString());
        Trace.WriteLine("Leaving Index method");
        return View();
    }
    
    public ActionResult About()
    {
        Trace.WriteLine("Entering About method");
        ViewBag.Message = "Your app description page.";
        Trace.TraceWarning("Transient error on the About page at " + DateTime.Now.ToShortTimeString());
        Trace.WriteLine("Leaving About method");
        return View();
    }
    
    public ActionResult Contact()
    {
        Trace.WriteLine("Entering Contact method");
        ViewBag.Message = "Your contact page.";
        Trace.TraceError("Fatal error on the Contact page at " + DateTime.Now.ToLongTimeString());
        Trace.WriteLine("Leaving Contact method");
        return View();
    }        
    
  2. Aggiungere un'istruzione using System.Diagnostics; nella parte iniziale del file.

Visualizzare l'output di traccia in locale

  1. Premere F5 per eseguire l'applicazione in modalità di debug.

    Il listener di traccia predefinito scrive tutto l'output di traccia nella finestra Output , insieme ad altro output di debug. La figura seguente illustra l'output delle istruzioni trace aggiunte al metodo Index .

    Tracing in Debug window

    Nei passaggi seguenti viene illustrato come visualizzare l'output di traccia in una pagina Web, senza eseguire la compilazione in modalità debug.

  2. Aprire il file Web.config dell'applicazione, situato nella cartella di progetto, e aggiungere un elemento <system.diagnostics> alla fine del file, poco prima dell'elemento </configuration> di chiusura:

    <system.diagnostics>
    <trace>
      <listeners>
        <add name="WebPageTraceListener"
            type="System.Web.WebPageTraceListener,
            System.Web,
            Version=4.0.0.0,
            Culture=neutral,
            PublicKeyToken=b03f5f7f11d50a3a" />
      </listeners>
    </trace>
    </system.diagnostics>
    

WebPageTraceListener consente di visualizzare l'output di traccia passando a /trace.axd.

  1. Aggiungere un elemento trace dopo <system.web> nel file Web.config, come illustrato nell'esempio seguente:

    <trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />
    
  2. Premere CTRL+F5 per eseguire l'applicazione.

  3. Nella barra degli indirizzi della finestra del browser aggiungere trace.axd all'URL e quindi premere INVIO (l'URL è simile a http://localhost:53370/trace.axd).

  4. Nella pagina Application Trace fare clic su View Details nella prima riga (non la riga BrowserLink).

    Screenshot of the Application Trace page in a web browser showing View Details selected on the first line.

    Verrà visualizzata la pagina Dettagli richiesta e nella sezione Informazioni analisi sarà riportato l'output delle istruzioni trace aggiunte al metodo Index.

    Screenshot of the Request Details page in a web browser showing a message highlighted in the Trace Information section.

    Per impostazione predefinita, trace.axd è disponibile solo in locale. Se si vuole renderlo disponibile da un'app remota, è possibile aggiungere localOnly="false" all'elemento trace nel file Web.config, come illustrato nell'esempio seguente:

    <trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />
    

    Tuttavia, l'attivazione di trace.axd in un'app di produzione non è consigliata per motivi di sicurezza. Le sezioni seguenti mostrano un modo più semplice per leggere i log di traccia in un'app del Servizio app.

Visualizzare l'output di traccia in Azure

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto Web, quindi scegliere Pubblica.

  2. Nella finestra di dialogo Pubblica sito Web fare clic su Pubblica.

    Dopo la pubblicazione dell'aggiornamento, verrà aperta una finestra del browser nella home page, a meno che non sia stata deselezionata l'opzione URL di destinazione nella scheda Connessione.

  3. In Esplora server fare clic con il pulsante destro del mouse sull'app e selezionare Visualizza log in streaming.

    Screenshot of Server Explorer after right-clicking your app, with View Streaming Logs selected in a new window.

    Nella finestra Output è indicato che si è connessi al servizio di streaming di log e viene aggiunta una riga di notifica dopo ogni minuto trascorso senza un log da visualizzare.

    Screenshot of the Output window showing an example of a connection to a log-streaming service with notification lines.

  4. Nella finestra del browser in cui è visualizzata la home page dell'applicazione fare clic su Contact.

    Entro pochi secondi verrà visualizzata la traccia a livello di errore aggiunta al metodo Contact nella finestra Output.

    Error trace in Output window

    In Visual Studio vengono visualizzate solo le tracce a livello di errore perché questa è l'impostazione predefinita quando si abilita il servizio di monitoraggio dei log. Quando si crea una nuova app del Servizio app, la registrazione è disabilitata per impostazione predefinita, come illustrato in precedenza all'apertura della pagina di impostazioni:

    Application Logging off

    Se tuttavia si seleziona View Streaming Logs, in Visual Studio l'opzione Registrazione applicazioni (file system) viene automaticamente impostata su Errore, il che significa che vengono segnalati i log a livello di errore. Per visualizzare tutti i log di traccia, è possibile impostare questa opzione su Verbose. Quando si seleziona un livello di gravità inferiore a errore, vengono segnalati anche tutti i log per livelli di gravità superiori. Quindi se si seleziona Verbose verranno visualizzati anche i log di informazioni, avvisi ed errori.

  5. In Esplora server fare clic con il pulsante destro del mouse sull'app, quindi scegliere Visualizza impostazioni come indicato in precedenza.

  6. Impostare l'opzione Registrazione applicazioni (file system) su Dettagliato, quindi fare clic su Salva.

    Setting trace level to Verbose

  7. Nella finestra del browser, in cui ora viene visualizzata la pagina Contact, fare clic su Home, quindi su About e infine su Contact.

    Entro pochi secondi nella finestra Output verrà visualizzato tutto l'output di traccia.

    Verbose trace output

    Questa sezione ha illustrato come abilitare e disabilitare la registrazione tramite le impostazioni dell'app. È inoltre possibile abilitare e disabilitare i listener di traccia modificando il file Web.config. Tuttavia la modifica del file Web.config provoca il riciclo del dominio dell'app, a differenza di quanto avviene abilitando la registrazione tramite la configurazione dell'app. Se il problema è intermittente oppure è necessario molto tempo per riprodurlo, il riciclo del dominio dell'app potrebbe risolverlo e costringere ad attendere finché non si verifica di nuovo. Se si abilita la diagnostica in Azure, è possibile avviare l'acquisizione delle informazioni sugli errori senza riciclare il dominio dell'app.

Funzionalità della finestra Output

La scheda Log di Microsoft Azure della finestra Output contiene diversi pulsanti e una casella di testo:

Screenshot showing the buttons and text box of the Microsoft Azure Logs tab in the Output window.

Questi controlli consentono di eseguire le funzioni seguenti:

  • Cancellare la finestra Output .
  • Abilitare o disabilitare il ritorno a capo automatico.
  • Avviare o interrompere il monitoraggio dei log.
  • Specificare i log da monitorare.
  • scaricare i log.
  • Filtrare i log in base a una stringa di ricerca o a un'espressione regolare.
  • Chiudere la finestra Output .

Se si immette una stringa di ricerca o un'espressione regolare, in Visual Studio le informazioni verranno filtrate nel client. Ciò significa che è possibile immettere i criteri di filtro dopo la visualizzazione dei log nella finestra Output e quindi modificarli senza la necessità di rigenerare i log.

Visualizzazione dei log del server Web

I log del server Web registrano tutta l'attività HTTP che si verifica nell'app. Per visualizzarli nella finestra Output, è necessario abilitarli per l'app e indicare a Visual Studio che si vuole monitorarli.

  1. Nella scheda Configurazione di app Web di Azure aperta da Esplora server, impostare Registrazione server Web su Attivato, quindi fare clic su Salva.

    Enable web server logging

  2. Nella finestra Output fare clic sul pulsante Specifica i log di Microsoft Azure da monitorare.

    Specify which Azure logs to monitor

  3. Nella finestra di dialogo Opzioni di registrazione Microsoft Azure selezionare Log del server Web e quindi fare clic su OK.

    Monitor web server logs

  4. Nella finestra del browser in cui viene visualizzata l'app fare clic su Home, quindi su About e infine su Contact.

    In genere verranno visualizzati prima i log dell'applicazione, seguiti da quelli del server Web. Può essere necessario attendere qualche secondo prima che vengano visualizzati i log.

    Web server logs in Output window

Per impostazione predefinita, quando vengono abilitati per la prima volta tramite Visual Studio, i log vengono scritti nel file system. In alternativa, è possibile usare il portale di Azure per specificare che i log del server Web devono essere scritti in un contenitore BLOB in un account di archiviazione.

Se si usa il portale per abilitare la registrazione del server Web in un account di archiviazione di Azure e quindi si disabilita la registrazione in Visual Studio, quando si riabilita la registrazione in Visual Studio le impostazioni dell'account di archiviazione verranno ripristinate.

Visualizzare i log dei messaggi di errore dettagliati

I log dei messaggi di errore dettagliati forniscono informazioni aggiuntive sulle richieste HTTP che generano codici di risposta di errore (400 o superiore). Per visualizzarli nella finestra Output, è necessario abilitarli per l'app e indicare a Visual Studio che si vuole monitorarli.

  1. Nella scheda Configurazione di app Web di Azure aperta da Esplora server, impostare Messaggi di errore dettagliati su On, quindi fare clic su Salva.

    Enable detailed error messages

  2. Nella finestra Output fare clic sul pulsante Specifica i log di Microsoft Azure da monitorare.

  3. Nella finestra di dialogo Opzioni di registrazione di Microsoft Azure selezionare Tutti i log e quindi fare clic su OK.

    Monitor all logs

  4. Nella barra degli indirizzi della finestra del browser aggiungere un altro carattere all'URL per generare un errore 404, ad esempio http://localhost:53370/Home/Contactxe premere INVIO.

    Dopo alcuni secondi nella finestra Output di Visual Studio verrà visualizzato il log dei messaggi di errore dettagliati.

    Detailed error log - Output window

    Fare clic sul collegamento tenendo premuto CTRL per visualizzare l'output dei log formattato in un browser:

    Detailed error log - browser window

Download dei log del file system

Tutti i log che è possibile monitorare nella finestra Output possono anche essere scaricati in un file ZIP .

  1. Nella finestra Output fare clic su Scarica i log in streaming.

    Screenshot of the Output window showing the Download Streaming Logs button highlighted.

    Si aprirà Esplora file alla cartella Download con il file scaricato selezionato.

    Screenshot of the Downloads folder in File Explorer with a downloaded file selected.

  2. Estrarre il file ZIP. Verrà visualizzata la struttura di cartella seguente:

    Screenshot of the .zip file folder structure after the file has been extracted.

    • I log di traccia dell'applicazione sono contenuti in file con estensione txt nella cartella LogFiles\Application.

    • I log del server Web sono contenuti in file con estensione log nella cartella LogFiles\http\RawLogs. Per visualizzare e manipolare questi file, è possibile utilizzare uno strumento come Log Parser .

    • I log dei messaggi di errore dettagliati sono contenuti in file con estensione html nella cartella LogFiles\DetailedErrors.

      La cartella delle distribuzioni è destinata ai file creati dalla pubblicazione del controllo del codice sorgente e non ha alcun elemento correlato alla pubblicazione di Visual Studio. La cartella Git è destinata alle tracce correlate alla pubblicazione del controllo del codice sorgente e al servizio di streaming dei file di log.

Visualizzare i log di traccia delle richieste non riuscite

I log di traccia delle richieste non riuscite sono utili quando è necessario acquisire i dettagli sul modo in cui vengono gestite le richieste HTTP in IIS, in scenari come i problemi di autenticazione o di riscrittura di URL.

Le app del Servizio app usano la stessa funzionalità di traccia delle richieste non riuscite disponibile in IIS 7.0 e versioni successive. Tuttavia, non si dispone di accesso alle impostazioni di IIS che consentono di configurare quali errori vengono registrati. Quando si abilita la traccia delle richieste non riuscite, vengono acquisiti tutti gli errori.

È possibile abilitare la traccia delle richieste non riuscite mediante Visual Studio, ma non è possibile visualizzarle in Visual Studio. I log sono file in formato XML. Il servizio di log in streaming esegue il monitoraggio solo dei file leggibili in modalità testo normale, ovvero: .txt, .html e file di .log.

È possibile visualizzare i log di traccia delle richieste non riuscite direttamente in un browser mediante FTP oppure in locale dopo aver utilizzato uno strumento FTP per scaricarli nel computer in uso. In questa sezione verrà illustrato come visualizzarli direttamente in un browser.

  1. Nella scheda Configurazione della finestra App Web di Azure aperta da Esplora server, impostare Traccia delle richieste non riuscite su Attivato, quindi fare clic su Salva.

    Enable failed request tracing

  2. Nella barra degli indirizzi della finestra del browser in cui è visualizzata l'app aggiungere un carattere ulteriore all'URL e premere INVIO per generare un errore 404.

    In questo modo verrà creato un log di traccia delle richieste non riuscite. Di seguito viene illustrato come visualizzare o scaricare il log.

  3. In Visual Studio, nella scheda Configurazione della finestra App Web di Azure fare clic su Apri nel portale di gestione.

  4. Nella pagina Impostazioni del portale di Azure per l'app fare clic su Credenziali per la distribuzione e quindi immettere un nuovo nome utente e una nuova password.

    New FTP user name and password

    Nota

    Quando si effettua l'accesso, è necessario usare il nome utente completo preceduto dal nome dell'app. Ad esempio, se si immette "idpersonale" come nome utente e il sito è "esempiopersonale", è accedere come "esempiopersonale\idpersonale".

  5. In una nuova finestra del browser passare all'URL indicato in Nome host FTP o Nome host FTPS della pagina Panoramica per l'app.

  6. Accedere usando le credenziali FTP create in precedenza (incluso il prefisso del nome dell'app per il nome utente).

    Nel browser verrà visualizzata la cartella radice dell'app.

  7. Aprire la cartella LogFiles .

    Open LogFiles folder

  8. Aprire la cartella denominata W3SVC più un valore numerico.

    Open W3SVC folder

    La cartella contiene i file XML relativi a eventuali errori registrati dopo l'abilitazione della traccia delle richieste non riuscite, oltre a un file XSL utilizzabile dal browser per formattare i file XML.

    W3SVC folder

  9. Fare clic sul file XML relativo alla richiesta non riuscita per cui si desidera visualizzare informazioni di traccia.

    Nella figura seguente è illustrata una parte delle informazioni di traccia per un errore di esempio.

    Failed request tracing in browser

Passaggi successivi

Questo articolo ha illustrato come Visual Studio semplifica la visualizzazione dei log creati da un'app del Servizio app. Le sezioni seguenti forniscono collegamenti ad altre risorse su argomenti correlati:

  • Risoluzione dei problemi relativi al Servizio app
  • Debug in Visual Studio
  • Debug remoto in Azure
  • Traccia nelle applicazioni ASP.NET
  • Analisi dei log del server Web
  • Analisi dei log di traccia delle richieste non riuscite
  • Debug di Servizi cloud

Risoluzione dei problemi relativi al Servizio app

Per altre informazioni sulla risoluzione dei problemi di app nel Servizio app di Azure, consultare le risorse seguenti:

Per informazioni su specifiche domande relative alla risoluzione dei problemi, avviare un thread in uno dei forum seguenti:

Debug in Visual Studio

Per altre informazioni su come usare la modalità debug in Visual Studio, vedere gli argomenti Debug in Visual Studio e Suggerimenti sul debug con Visual Studio 2010.

Debug remoto in Azure

Per altre informazioni sul debug remoto per app del Servizio app e per i processi Web, consultare le risorse seguenti:

Se l'app usa un back-end di Servizi mobili o di API Web di Azure di cui è necessario eseguire il debug, consultare Debugging .NET Backend in Visual Studio (Debug di back-end .NET in Visual Studio).

Traccia nelle applicazioni ASP.NET

In Internet non sono disponibili introduzioni complete e approfondite per la traccia in ASP.NET. È consigliabile iniziare con i materiali introduttivi precedenti scritti per Web Form, perché MVC non esisteva ancora, e quindi integrare queste informazioni con i post di blog più recenti dedicati a specifici problemi. Altre risorse introduttive sono riportate di seguito:

Per la registrazione degli errori, in alternativa alla scrittura di codice di traccia personalizzato, è possibile utilizzare un framework di registrazione open source come ELMAH. Per ulteriori informazioni, vedere i post di blog di Scott Hanselman su ELMAH.

Inoltre, non è necessario usare ASP.NET o la traccia System.Diagnostics nel per ottenere i log in streaming da Azure. Il servizio di log in streaming dell'app del Servizio app di Azure trasmette tutti i file con estensione .txt, .html o .log presenti nella cartella LogFiles. Pertanto, è possibile creare un sistema di registrazione personalizzato per scrivere nel file system dell'app. In questo modo il file verrà automaticamente trasmesso e scaricato. È sufficiente scrivere codice di applicazione che crea file nella cartella d:\home\logfiles.

Analisi dei log del server Web

Per ulteriori informazioni sull'analisi dei log del server Web, vedere le risorse seguenti:

Analisi dei log di traccia delle richieste non riuscite

Il sito Web Microsoft TechNet include la sezione Uso della traccia delle richieste non riuscite, che potrebbe risultare utile per informazioni su come usare questi log. Tuttavia, questa documentazione è incentrata principalmente sulla configurazione della traccia delle richieste non riuscite in IIS, che non è possibile eseguire nel Servizio app di Azure.