Condividi tramite


Risolvere i problemi relativi alle richieste non riuscite usando la traccia in IIS

Si applica a: Internet Information Services 8.5 e versioni successive

Introduzione

La traccia basata su richiesta è disponibile sia nei server autonomi che eseguono Internet Information Services (IIS) che in Servizio app di Azure. Se è possibile riprodurre un problema riscontrato, la traccia basata su richiesta fornisce un metodo per diagnosticare il problema e determinare il motivo per cui si verifica. Problemi come prestazioni scarse in alcune richieste, errori correlati all'autenticazione in altre richieste o l'errore "500" del server da ASP o ASP.NET può spesso essere difficile da risolvere. È possibile semplificare il processo acquisendo una traccia del problema quando si verifica. Questo articolo illustra la traccia delle richieste non riuscite in un server IIS.

La traccia delle richieste non riuscite è progettata per memorizzare nel buffer gli eventi di traccia per una richiesta e scaricarli su disco solo se la richiesta ha esito negativo. Si specifica la definizione dell'errore. È possibile usare La traccia delle richieste non riuscite per i motivi seguenti:

  • Si vuole sapere perché le richieste restituiscono un codice di stato HTTP specifico(ad esempio, "401" o "404").
  • Una richiesta richiede molto tempo per l'elaborazione o non risponde.

Questo articolo spiega come:

  • Abilita il modulo di Tracciamento delle Richieste Non Riuscite.
  • Configurare la semantica del file di log di traccia delle richieste non riuscite.
  • Designare l'URL per cui elaborare le tracce delle richieste non riuscite, incluse le definizioni di errore e le aree da tracciare.
  • Generare la condizione di errore e visualizzare la traccia risultante.

Prerequisiti

Installare la funzionalità di traccia per IIS

Installare le funzionalità IIS seguenti:

  • ASP.NET 3.5
    • Server Web (IIS)>Server Web>Funzionalità di sviluppo di applicazioni>ASP.NET 3.5
  • ASP.NET 4.5
    • Server Web (IIS)>Server Web>Funzionalità di sviluppo di applicazioni>ASP.NET 4.5
  • Tracciamento
    • Server Web (IIS)>Server Web>Integrità e diagnostica - Tracciamento

Accedere come amministratore

Assicurarsi che l'account usato per accedere sia l'account amministratore o che si trovi nel gruppo administrators.

Note

L'appartenenza al gruppo administrators non concede diritti utente di amministratore completi per impostazione predefinita. Per eseguire applicazioni come amministratore, fare clic con il pulsante destro del mouse sull'icona dell'applicazione e quindi scegliere Esegui come amministratore.

Eseguire un backup

Prima di iniziare, eseguire il backup dei file di configurazione:

  1. Premere il tasto windows + X, selezionare Terminale (amministratore), se viene visualizzata la finestra di dialogo Controllo account utente (UAC) selezionare .

    Icona Amministratore terminale nel menu Collegamento rapido.

  2. Al prompt dei comandi eseguire il comando seguente:

    %windir%\system32\inetsrv\appcmd add backup cleanInstall
    

    Questo comando crea una cartella cleanInstall contenente i file di configurazione di backup in %windir%\system32\inetsrv\backup.

Creare contenuto di esempio

  1. Vai a %systemdrive%\inetpub\wwwroot.

  2. Spostare il contenuto in un percorso sicuro (nel caso in cui si voglia ripristinare il contenuto esistente) o eliminarlo.

  3. Creare un file vuoto e denominarlo test.asp.

  4. Nel prompt dei comandi, passare al file test.asp in \inetpub\wwwroot.

  5. Nel file test.asp incollare il contenuto seguente:

    <h2>Failed Request Tracing Lab</h2><br>
    <br>Today's date is <% response.write(Date()) %>
    

Disabilitare ASP

Per eseguire questa attività, è necessario disabilitare ASP. Segui questi passaggi:

  1. Aprire Gestione IIS e selezionare il server.

  2. Fare doppio clic su Restrizioni ISAPI e CGI.

    Riquadro Gestione IIS che mostra le restrizioni ISAPI e CGI selezionate.

  3. Nel riquadro Restrizioni ISAPI e CGI selezionare ASP (Active Server Pages). Nel riquadro Azioni selezionare Nega per disabilitare ASP. Active Server Pages vengono visualizzate come Non consentito.

    Riquadro Restrizioni ISAPI e CGI che mostra l'opzione Pagine server attive selezionata. L'opzione Nega è selezionata nel riquadro Azioni.

Abilitare il tracciamento delle richieste non riuscite

Dopo aver abilitato La traccia delle richieste non riuscite, è necessario configurare il percorso dei file di log. In questa sezione viene abilitata la traccia delle richieste non riuscite per il sito Web predefinito e si specifica dove archiviare i file di log. Configurare quindi l'errore per cui generare i log degli errori.

Passaggio 1: Abilitare la traccia delle richieste non riuscite per il sito e configurare la directory del file di log

  1. Aprire una finestra del prompt dei comandi amministrativo e passare a %systemdrive%\windows\system32\inetsrv.

  2. Eseguire inetmgr per aprire Gestione IIS.

  3. Nel riquadro Connessioni espandere il nome del computer, espandere Siti e quindi selezionare Sito Web predefinito.

  4. Nel riquadro Azioni passare a Configura e quindi selezionare Traccia richiesta non riuscita....

    Screenshot del riquadro Azioni che mostra evidenziata l'opzione Tracciamento delle richieste non riuscite nella scheda Configura.

  5. Nella finestra di dialogo Modifica impostazioni di traccia richieste non riuscite del sito Web, configurare le seguenti impostazioni:

    • Selezionare la casella Abilita.
    • Mantenere le impostazioni predefinite per le altre impostazioni.

    La finestra di dialogo Modifica le impostazioni di tracciamento delle richieste non riuscite del sito Web che mostra un comando che popola il campo Directory e la casella di controllo Abilita selezionata.

  6. Seleziona OK.

    La registrazione di traccia delle richieste non riuscita è ora abilitata per la selezione predefinita del sito Web. Controllare il file%windir%\system32\inetsrv\config\applicationHost.config per verificare che la configurazione sia simile all'esempio seguente:

    <system.applicationHost>
       <!-- other system configuration --> 
       <sites> 
          <site name="Default Web Site" id="1"> 
             <!-- other site configuration --> 
             <traceFailedRequestsLogging  enabled="true" /> 
          </site> 
          <!-- site & app defaults --> 
          <!-- other sites configuration --> 
       </sites> 
       <!-- other system configuration --> 
    </system.applicationHost>
    

Passaggio 2: Configurare le definizioni degli errori

In questo passaggio vengono configurate le definizioni di errore per l'URL, incluse le aree da tracciare. Si risolvono i problemi relativi a un codice di stato "404.2" restituito da IIS per le richieste alle estensioni che non hai abilitato. Questo passaggio consente di determinare quali estensioni specifiche è necessario abilitare:

  1. Aprire una finestra del prompt dei comandi amministrativo e passare a %systemdrive%\windows\system32\inetsrv.

  2. Eseguire inetmgr per aprire Gestione IIS.

  3. Nel riquadro Connessioni espandere il nome del computer, espandere Siti e quindi selezionare Sito Web predefinito.

  4. Fare doppio clic su Regole di traccia delle richieste non riuscite.

    Riquadro Home sito Web predefinito che mostra la funzionalità Regole di traccia delle richieste non riuscite selezionata.

  5. Nel riquadro Azioni selezionare Aggiungi.

  6. Nella procedura guidata Aggiungi regola di traccia delle richieste non riuscite , nella pagina Specifica contenuto da traccia selezionare Tutto il contenuto (*), quindi selezionare Avanti.

  7. Nella pagina Definisci condizioni di traccia selezionare la casella di controllo Codici di stato e quindi immettere 404.2 come codice di stato da tracciare.

    La regola di traccia delle richieste non riuscite aggiunta che mostra la pagina Definire le condizioni di traccia e punto 2 del codice 404 immesso come codice di stato.

  8. Seleziona Avanti.

  9. Nella pagina Seleziona provider di traccia, in Provider selezionare la casella di controllo WWW Server e deselezionare tutte le altre caselle di controllo. In Aree selezionare la casella di controllo Sicurezza e deselezionare tutte le altre caselle di controllo.

    Il problema generato causa la generazione di un evento di traccia degli errori di sicurezza. In generale, è possibile diagnosticare i problemi di autenticazione e autorizzazione (inclusi i problemi relativi all'elenco di restrizioni ISAPI) usando la configurazione dell'area WWW Server - Security per la traccia. Tuttavia, poiché il foglio di stile FREB.xsl consente di evidenziare errori e avvisi, è comunque possibile usare la configurazione predefinita per registrare tutti gli eventi in tutte le aree e provider.

  10. In Verbosità, selezionare Dettagliato.

    Note

    Per impostazione predefinita, quando si installa il servizio ruolo di traccia, IIS installa i provider di traccia WWW Server, ASP e ISAPI Extension. Se si installa ASP.NET 2.0 o versione successiva, IIS aggiunge automaticamente il provider di traccia ASPNET. I provider aggiuntivi vengono installati dal pacchetto del programma di installazione ARR (Application Request Routing) che installa anche il modulo di riscrittura URL, la gestione della Web farm e la cache esterna. È possibile aggiungere altri provider di traccia usando l'elemento <add> all'interno dell'elemento <traceProviderDefinitions> .

    Aggiunta guidata regola di traccia delle richieste non riuscite che mostra il server WWW selezionato nell'elenco Provider e Sicurezza selezionato nel menu Aree.

  11. Selezionare Fine.

Viene visualizzata la definizione seguente per Il sito Web predefinito.

La pagina delle Regole di Tracciamento delle Richieste Non Riuscite che mostra WWW Server specificato come Provider Associato e 404 punto 2 come Codice di Stato.

Gestione IIS scrive la configurazione nel %systemdrive%\inetpub\wwwroot\web.config file usando un <location> tag . La configurazione dovrebbe essere simile all'esempio seguente:

<configuration> 
    <system.webServer> 
        <tracing> 
            <traceFailedRequests> 
                <add path="*"> 
                    <traceAreas> 
                        <add provider="WWW Server" areas="Security" verbosity="Verbose" /> 
                    </traceAreas> 
                    <failureDefinitions statusCodes="404.2" /> 
                </add> 
            </traceFailedRequests> 
        </tracing> 
    </system.webServer> 
</configuration>

Testare e visualizzare il file di log delle richieste di errore

Questa sezione illustra come generare una richiesta non riuscita e visualizzare il log di traccia risultante. IIS è già stato configurato per acquisire i log di traccia per http://localhost/*.asp le richieste che hanno esito negativo e restituire un codice di risposta HTTP "404.2". Ora si vuole verificare che la configurazione funzioni.

Passaggio 1: Generare un errore e il file di log delle richieste di errore

  1. Aprire una nuova finestra di Internet Explorer.

  2. Immettere http://localhost/test.aspe premere INVIO. Viene visualizzato il messaggio di errore "Errore HTTP 404.2 - Non trovato".

    Finestra di Internet Explorer che visualizza la pagina messaggio Errore H T T P 404 punto 2 trattino non trovato.

Passaggio 2: Visualizzare il file di log delle richieste di errore

  1. Dopo aver generato una richiesta non riuscita, aprire Esplora file e passare a %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

    La cartella W 3 S V C 1 nella cartella dei log delle richieste non riuscite Req Log Files.

    Note

    Quando IIS scrive il file di log delle richieste non riuscite, scrive un file per ogni richiesta non riuscita. Scrive anche un foglio di stile freb.xsl per ogni directory. Questo foglio di stile consente di visualizzare i file di log delle richieste di errore risultanti, ad esempio fr000001.xml in questo esempio.

  2. Fare clic con il pulsante destro del mouse sul file di log per l'errore "404.2" e quindi scegliere Apri con>Internet Explorer. Se si apre un file di traccia delle richieste non riuscite per la prima volta, è necessario aggiungere about:internet all'elenco dei siti attendibili. Questo passaggio è necessario perché La configurazione sicurezza avanzata di Internet Explorer è abilitata per impostazione predefinita. In questo caso, viene visualizzata una finestra di dialogo che contiene l'opzione Continua a segnalare quando il contenuto del sito Web è bloccato.

    La finestra di dialogo di Internet Explorer mostra l'opzione

  3. Nella finestra di dialogo Internet Explorer aggiungere about:internet all'elenco di siti attendibili. Segui questi passaggi:

    1. Selezionare il menu Strumenti e quindi Opzioni Internet.
    2. Seleziona la scheda Sicurezza.
    3. Selezionare Area attendibile e quindi Siti. Questo passaggio consente il funzionamento di XSL.
  4. Dopo aver aggiunto about:internet all'elenco dei siti attendibili, viene visualizzata una pagina Riepilogo richieste.

    Pagina Riepilogo richieste che mostra la tabella Errori e avvisi che visualizza le colonne gravità, evento e nome del modulo.

    Nella parte superiore viene registrato un riepilogo della richiesta non riuscita. La tabella Errori e avvisi identifica tutti gli eventi etichettati come WARNING, ERRORo CRITICAL ERROR in gravità. In questo esempio il livello di gravità WARNING viene assegnato a causa della RESTRIZIONE ISAPI. L'immagine che si è tentato di caricare è %windir%\system32\inetsrv\asp.dll.

  5. Aprire il file XML non elaborato direttamente usando un editor di testo ed esaminare il contenuto dell'evento.

Riepilogo

Sono state completate due attività:

  • Configurazione della traccia delle richieste non riuscite per acquisire le tracce di qualsiasi richiesta con un codice di stato "404.2" restituita da IIS.
  • Verifica che IIS abbia catturato la traccia della tua richiesta

È stato anche verificato che il file di log freb.xml non contenga richieste diverse da quelle richieste che mostrano un codice restituito "404.2". Quando si consulta il file di log degli errori, si è determinato che la causa dell'errore era che l'estensione è disabilitata per tale richiesta. È possibile provare altre pagine non HTML , ad esempio .gif o .jpg file, e verificare che il file di log non aggiunga queste tracce. È anche possibile modificare facilmente questo evento in modo che sia un evento "404". Se la richiesta richiede più di 30 secondi, è possibile acquisire l'errore impostando il campo timeTaken come valore failureDefinitions .

Ripristinare il backup

Dopo aver completato le attività in questo articolo, ripristinare il backup della configurazione. Eseguire il comando seguente con diritti utente di amministratore:

%windir%\system32\inetsrv\appcmd restore backup cleanInstall