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

Si applica a: Internet Information Services 7.0

Nota

Questo articolo si applica a IIS 7.0. Per le versioni più recenti, vedere Risolvere i problemi relativi alle richieste non riuscite tramite la traccia in IIS 8.5.

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

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, in cui si specifica la definizione di "errore". Se si vuole sapere perché si ricevono messaggi di errore 404.2 o la richiesta inizia a bloccarsi, usare La traccia delle richieste non è riuscita.

Le attività illustrate in questo articolo includono:

  • Abilitazione del modulo Di traccia richieste non riuscite.
  • Configurazione della semantica del file di log di Traccia richieste non riuscite.
  • Definizione dell'URL per il quale mantenere le tracce delle richieste non riuscite, incluse le definizioni degli errori 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à descritte in questo articolo. Passare a 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 le funzionalità seguenti:

  • ASP.NET (in World Wide Web Services - Application Development Features - ASP.NET)
  • Traccia (in Analisidiagnostica e - integrità di World Wide Web Services - )

Accedere come amministratore

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

Nota

L'appartenenza al gruppo Administrators non consente di completare i diritti utente di amministratore per impostazione predefinita. È necessario eseguire le applicazioni come amministratore, operazione che è possibile eseguire facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e scegliendo Esegui come amministratore.

Eseguire un backup

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

Per eseguire un backup della configurazione, seguire questa procedura:

  1. Selezionare Avvia>tutti i programmi>accessori.

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

    Screenshot che mostra il menu di scelta rapida per prompt dei comandi, con l'opzione Esegui come amministratore selezionata.

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

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

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. Al 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 Internet Information Services (IIS).

  2. Fare doppio clic su Restrizioni ISAPI e CGI.

    Screenshot che mostra I I S Manager con I S A P I e C G I Restrictions selezionati.

  3. Selezionare Pagine server attive. Nel riquadro Azioni selezionare Nega per disabilitare ASP.

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

Abilitare la traccia delle richieste non riuscite

Dopo aver abilitato la traccia delle richieste non riuscite, è 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 si specifica dove inserire i file di log. Si configurerà 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 dei file di log

  1. Aprire un prompt dei comandi con diritti utente di amministratore e passare a %systemdrive%\windows\system32\inetsrv.

  2. Eseguire inetmgr per aprire Gestione IIS.

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

  4. Nel riquadro Azioni , in Configura, selezionare Traccia richieste non riuscite.

    Screenshot che mostra la traccia delle richieste non riuscite in Configura.

  5. Nella finestra di dialogo Modifica impostazioni di traccia richieste non riuscite del 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 richieste non riuscite del sito Web, con l'opzione Abilita selezionata.

  6. Seleziona OK.

La registrazione di Traccia 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 alla 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 degli errori per l'URL, incluse le aree da tracciare. Si risolverà i problemi relativi a una versione 404.2 restituita da IIS per tutte le richieste alle estensioni non ancora abilitate. In questo modo è possibile determinare quali estensioni specifiche è necessario abilitare.

  1. Aprire un prompt dei comandi con diritti utente di amministratore e passare a %systemdrive%\windows\system32\inetsrv.

  2. Eseguire inetmgr per aprire Gestione IIS.

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

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

    Screenshot che mostra il riquadro Home del sito Web predefinito e le regole di traccia delle richieste non riuscite sono selezionate.

  5. Seleziona Fine.

  6. Nel riquadro Azioni selezionare Aggiungi.

  7. Nella pagina Specifica contenuto da tracciare della procedura guidata Aggiungi regola di traccia richiesta non riuscita selezionare Tutto il contenuto (*). Selezionare Avanti.

    Screenshot che mostra l'Aggiunta guidata regola di traccia richiesta non riuscita, con l'opzione Tutto il contenuto selezionata.

  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. Selezionare Avanti.

  10. Nella pagina Seleziona provider di traccia selezionare la casella di controllo Server WWW in Provider. 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, i problemi di autenticazione e autorizzazione (inclusi i problemi relativi all'elenco di restrizioni ISAPI) possono essere diagnosticati usando la configurazione dell'area di sicurezza www 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 Verbosity (Verbosity) selezionare Verbose (Dettagliato).

    Screenshot che mostra la pagina Seleziona provider di traccia. W W Server è selezionato in Provider e Sicurezza è selezionato in Dettagliato.

  11. Seleziona 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à si genererà una richiesta non riuscita e si visualirà 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 della richiesta di errore

  1. Aprire una nuova finestra di Internet Explorer.

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

  3. Viene visualizzato un errore "Errore HTTP 404.2 - Non trovato".

    Screenshot che mostra una pagina Web denominata Errore server nel sito Web predefinito dell'applicazione. In Riepilogo errori è indicato H T T P Errore 404 punto 2 Non trovato.

Passaggio 2: Visualizzare il file di log della richiesta di errore

  1. Dopo aver generato una richiesta non riuscita, aprire un prompt dei comandi con diritti utente di amministratore e passare a %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

  2. Eseguire start 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 0 1.

  3. Si noti un paio di cose qui: 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 directory. Ciò risulta utile quando si visualizzano i file di log delle richieste di errore risultanti, ad esempio fr000001.xml in questo esempio.

  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 di sicurezza avanzata di Internet Explorer è abilitata per impostazione predefinita. In tal caso, vengono visualizzati gli elementi seguenti:

    Screenshot che mostra una finestra di dialogo per La configurazione della sicurezza avanzata di Internet Explorer. Informazioni su Internet dei due punti è bloccato.

  5. Nella finestra di dialogo Internet Explorer selezionare Aggiungi... per aggiungere about:internet all'elenco dei siti attendibili. In questo modo l'XSL può funzionare. Dopo l'aggiunta di about:internet all'elenco dei siti attendibili, verranno visualizzati gli elementi seguenti:

    Screenshot che mostra Internet Explorer. La scheda Riepilogo richieste è selezionata e sono elencati due avvisi.

    Un riepilogo della richiesta non riuscita viene registrato nella parte superiore, con la tabella Errori & Avvisi che identifica tutti gli eventi che sono WARNING, ERROR o CRITICAL ERROR in Severity. 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à: la traccia delle richieste non riuscite è stata configurata per acquisire le tracce per qualsiasi richiesta restituita da IIS con un codice di stato 404.2 e si è verificato che IIS abbia acquisito la traccia per la richiesta. È stato anche verificato che il file di log freb.xml non contenga 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 file .gif o .jpg) e si noti che il file di log NON aggiunge queste tracce. È anche possibile modificare facilmente questo valore in 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à in questo articolo, è possibile ripristinare il backup della configurazione. Eseguire il comando seguente con diritti utente di amministratore:

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