Risoluzione dei problemi relativi alle richieste non riuscite tramite traccia in IIS 7

La traccia basata su richiesta è disponibile sia nei server IIS autonomi che nelle app Web di Azure e offre un modo per determinare esattamente cosa accade con le richieste e perché, purché sia possibile riprodurre il problema riscontrato. Problemi come le prestazioni scarse in alcune richieste o errori correlati all'autenticazione in altre richieste o l'errore del server 500 da ASP o ASP.NET può spesso essere difficile da risolvere, a meno che non sia stata acquisita la traccia del problema quando si verifica. l'articolo seguente illustra la traccia delle richieste non riuscite nel server IIS. Per informazioni su come eseguire questa operazione con le app Web di Azure, vedere Risolvere i problemi relativi a un'app in Servizio app di Azure usando Visual Studio.

La traccia delle richieste non riuscite è progettata per bufferare gli eventi di traccia per una richiesta e scaricarli solo su disco se la richiesta "ha esito negativo", in cui viene specificata la definizione di "errore". Se si vuole sapere perché si ottengono messaggi di errore 404.2 o si avviano richieste in sospeso, usare la traccia delle richieste non riuscite.

Le attività illustrate in questo articolo includono:

  • Abilitazione del modulo di traccia della richiesta non riuscita
  • Configurazione della semantica log-file di traccia non riuscita
  • Definizione dell'URL per cui mantenere le tracce delle richieste non riuscite, incluse le definizioni di errore e le aree da tracciare
  • Generazione della condizione di errore e visualizzazione della traccia risultante

Prerequisiti

Installare IIS

È necessario installare IIS 7 o versione successiva prima di poter eseguire le attività in questo articolo. Passare per http://localhost/ verificare se IIS è installato. Se IIS non è installato, vedere Installazione di IIS in Windows Server 2008 per istruzioni di installazione. Quando si installa IIS, assicurarsi di installare anche quanto segue:

  • ASP.NET (in Servizi Web a livello mondiale - Funzionalità di sviluppo di applicazioni - ASP.NET)
  • Traccia (in Servizi Web a livello mondiale - Integrità e diagnostica - Traccia)

Accedere come amministratore

Assicurarsi che l'account usato per accedere sia l'account amministratore o sia nel gruppo Administrators.

Nota

Il gruppo Administrators non concede i diritti utente di amministratore completi per impostazione predefinita. È necessario eseguire applicazioni come amministratore, che è possibile eseguire facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e selezionando Esegui come amministratore.

Eseguire un backup

È necessario eseguire un backup della configurazione prima di eseguire le attività seguenti.

Per eseguire un backup della configurazione

  1. Fare clic su Start>Tutti i programmi>Accessori.

  2. Fare clic con il pulsante destro del mouse su Prompt dei comandi, quindi scegliere Esegui come amministratore.

    Screenshot che mostra il menu di scelta rapida per prompt dei comandi, con Esegui come amministratore selezionato.

  3. In un prompt dei comandi eseguire il comando seguente:

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

Creare contenuto di esempio

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

  2. Spostare il contenuto in un percorso sicuro (nel caso in cui si desidera 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

Asp deve essere disabilitato per questa attività. ASP è disabilitato solo come esempio e ai fini delle attività in questo articolo.

Per disabilitare ASP

  1. Aprire Gestione IIS.

  2. Fare doppio clic su ISAPI e restrizioni CGI.

    Screenshot che mostra l'opzione I S Manager con I S A P I e C G I Restrizioni selezionate.

  3. Selezionare Pagine server attive. Nel riquadro Azioni fare clic su Nega per disabilitare ASP.

    Screenshot che mostra il riquadro Restrizioni e azioni I S A P E C G aperti.

Abilitare Failed-Request traccia

Dopo aver abilitato la traccia della richiesta non riuscita, è necessario configurare la posizione in cui risiederanno i file di log. In questa attività si abiliterà la traccia delle richieste non riuscite per il sito Web predefinito e specificare dove inserire i file di log. Verrà quindi configurato l'errore per il quale generare i log degli errori.

Passaggio 1: Abilitare Failed-Request traccia per il sito e configurare la directory file di log

  1. Aprire un prompt dei comandi con diritti utente amministratore.

  2. Avviare inetmgr.

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

  4. Nel riquadro Azioni , in Configura fare clic su Traccia richiesta non riuscita.

    Screenshot che mostra Traccia richiesta non riuscita in Configura.

  5. Nella finestra di dialogo Modifica impostazioni di traccia richiesta non riuscita sito Web configurare quanto segue:

    • Selezionare la casella di controllo Abilita .

    • Mantenere le impostazioni predefinite per le altre impostazioni.

      Screenshot che mostra la finestra di dialogo Modifica impostazioni di traccia richiesta non riuscita sito Web, con Abilita selezionata.

  6. Fare clic su OK.

La registrazione della traccia delle richieste non riuscite è ora abilitata per il sito Web predefinito. Controllare il file %windir%\system32\inetsrv\config\applicationHost.config per verificare che la configurazione sia simile al seguente:

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

Passaggio 2 : Configurare le definizioni degli errori

In questo passaggio verranno configurate le definizioni di errore per l'URL, incluse le aree da tracciare. Si risolverà la risoluzione dei problemi relativi a un valore 404.2 restituito da IIS per eventuali richieste di estensioni che non sono ancora state abilitate. Ciò consente di determinare quali estensioni specifiche sarà necessario abilitare.

  1. Aprire un prompt dei comandi con diritti utente amministratore.

  2. Avviare inetmgr.

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

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

    Screenshot che mostra il riquadro Home sito Web predefinito e le regole di traccia della richiesta non riuscite sono selezionate.

  5. Fare clic su Fine.

  6. Nel riquadro Azioni fare clic su Aggiungi.

  7. Nella procedura guidata Aggiungi regola di traccia richiesta non riuscitaselezionareTutto il contenuto (*). Fare clic su Avanti.

    Screenshot che mostra la procedura guidata Aggiungi regola di traccia richiesta non riuscita con Tutto il contenuto selezionato.

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

    Screenshot che mostra la pagina Definisci condizioni di traccia. Il codice di stato è selezionato con 404 punti 2 nel campo Codice stato.

  9. Fare clic su Avanti.

  10. Nella pagina Seleziona provider di traccia selezionare la casella di controllo Server WWW. In Aree selezionare la casella di controllo Sicurezza e deselezionare tutte le altre caselle di controllo. Il problema che si sta generando causa l'generazione di un evento di traccia degli errori di sicurezza. In generale, è possibile diagnosticare i problemi relativi all'autenticazione e all'autorizzazione (inclusi i problemi relativi all'elenco di restrizioni ISAPI) usando la configurazione dell'area WWW Server - Sicurezza 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 i provider. In Verbosityselezionare Verbose.

    Screenshot che mostra la pagina Seleziona provider di traccia. W W Server è selezionato in Provider e La sicurezza è selezionata in Verbose.

  11. Fare clic su Fine. Verrà visualizzata la definizione seguente per il sito Web predefinito:

    Screenshot che mostra il riquadro Regole di traccia richieste non riuscite. W W Server è elencato in Provider associati.

Gestione IIS scrive la configurazione nel %windir%\system32\inetsrv\config\applicationHost.config file usando un <location> tag. La configurazione dovrebbe essere simile alla seguente:

<location path="Default Web Site"> 
    <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> 
</location>

Testare e visualizzare il file di log delle richieste di errore

In questa attività verrà generata una richiesta non riuscita e verrà visualizzato 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 con un codice di risposta HTTP 404.2. Verificare ora che funzioni.

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

  1. Aprire una nuova finestra di Internet Explorer.

  2. Digitare l'indirizzo seguente: http://localhost/test.asp.

  3. Dovrebbe essere visualizzata la seguente schermata:

    Screenshot che mostra una pagina Web denominata Errore server nel sito Web predefinito dell'applicazione. In Riepilogo errori viene visualizzato l'errore H T T P 404 punto 2 non trovato.

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

  1. Ora che è stata generata una richiesta non riuscita, aprire un prompt dei comandi con diritti utente di amministratore e passare a %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

  2. Eseguire l'avvio per avviare una finestra di Internet Explorer dalla directory.

    Screenshot che mostra Internet Explorer che passa al percorso W 3 S V C 1. Sono elencati due file, freb e f r 0 0 0 0 0 1.

  3. Si notino alcuni aspetti: quando IIS scrive il file di log delle richieste non riuscite, scrive un file per ogni richiesta non riuscita. Viene scritto anche un foglio di stile freb.xsl , uno per ogni directory. Ciò consente di visualizzare i file di log delle richieste di errore risultanti, ad esempio fr000001.xml precedente.

  4. Fare clic con il pulsante destro del mouse sul file di log per l'errore 404.2 e scegliere Apri con > Internet Explorer. Se questa è la prima volta che si apre un file di traccia delle richieste non riuscite, è necessario aggiungere about:internet all'elenco dei siti attendibili, poiché La configurazione sicurezza avanzata di Internet Explorer è abilitata per impostazione predefinita. In questo caso, verrà visualizzato quanto segue:

    Screenshot che mostra una finestra di dialogo per Configurazione sicurezza avanzata di Internet Explorer. Informazioni sui due punti Internet è bloccato.

  5. Nella finestra di dialogo Internet Explorer fare clic su Aggiungi per aggiungere about:internet all'elenco di siti attendibili. In questo modo il codice XSL può funzionare. Dopo aver aggiunto about:internet all'elenco dei siti attendibili, verrà visualizzato quanto segue:

    Screenshot che mostra Internet Explorer. Viene selezionata la scheda Riepilogo richieste e vengono elencati due avvisi.

    Nella parte superiore viene registrato un riepilogo della richiesta non riuscita, con la tabella Avvisi errori & che identifica tutti gli eventi che sono WARNING, ERROR o CRITICAL ERROR in gravità. In questo esempio il livello di gravità WARNING è dovuto a ISAPI RESTRICTION. L'immagine che si è tentato di caricare è .%windir%\system32\inetsrv\asp.dll

  6. Aprire il file XML non elaborato direttamente usando un editor di testo e esaminare il contenuto di ogni evento.

Riepilogo

Sono state completate due attività: è stata configurata la traccia delle richieste non riuscite per acquisire le tracce per * se IIS lo restituisce con un codice di stato 404.2; e verificato che IIS ha acquisito la traccia per la richiesta. È stato inoltre verificato che il file di log freb*.xml non contiene altre richieste per le richieste effettuate perché le richieste non disponevano di un codice restituito 404.2. Quando si consulta il file di log degli errori, si è determinato che la causa dell'errore è che l'estensione è stata disabilitata per tale richiesta. È possibile provare altre pagine non HTML (ad esempio gif o jpg) e notare che il file di log non aggiunge queste tracce. È anche possibile modificare facilmente questa impostazione in modo che sia 404 o acquisire l'errore se la richiesta richiede più di 30 secondi impostando il campo timeTaken in failureDefinitions.

Ripristinare il backup

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

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