Condividi tramite


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

Si applica a: Internet Information Services 8.5

Introduzione

La traccia basata su richiesta è disponibile sia nei server IIS autonomi che nei siti Web di Microsoft Azure.Request-based tracing is available both in stand-alone IIS Servers and on Microsoft Azure Web Sites (WAWS). Se è possibile riprodurre il problema riscontrato, la traccia basata su richiesta offre un modo per determinare cosa accade esattamente con le richieste e perché si verifica. Problemi come prestazioni insufficienti in alcune richieste, errori correlati all'autenticazione in altre richieste o 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 Siti Web di Microsoft 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é le richieste restituiscono un codice di stato HTTP specifico, ad esempio 401 o 404, o se una richiesta richiede tempo per l'elaborazione o non risponde, è possibile usare La traccia delle richieste non riuscite.

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

Installare IIS 8.5 prima di poter eseguire le attività descritte in questo articolo. Passare a http://localhost/ e verificare che venga visualizzata la schermata iniziale di Internet Information Services. Se IIS non è installato, vedere Installazione di IIS 8.5 in Windows Server 2012 R2 per istruzioni di installazione. Quando si installa IIS, assicurarsi di installare anche le funzionalità seguenti:

  • ASP.NET 3.5 (in Web Server (IIS)/Web Server/Application Development Features/ASP.NET 3.5)
  • ASP.NET 4.5 (in Web Server (IIS)/Web Server/Application Development Features/ASP.NET 4.5)
  • Traccia (in Server Web (IIS)/Integrità e diagnosticadel server/ Web - Traccia)

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 facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e scegliendo Esegui come amministratore.

Eseguire un backup

Eseguire un backup dei file di configurazione prima di eseguire le attività seguenti:

  1. Selezionare il tasto logo Windows e il tasto X contemporaneamente, selezionare Prompt dei comandi (Amministrazione) e quindi selezionare .

    Screenshot della Amministrazione del prompt dei comandi nella barra delle applicazioni di Windows.

  2. Nel 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 del backup in %windir%\system32\inetsrv\backup.

Creare contenuto di esempio

  1. Passare 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, seguire questa procedura:

  1. Aprire Gestione IIS e selezionare il server.

  2. Fare doppio clic su Restrizioni ISAPI e CGI.

    Screenshot del riquadro I I S Manager che mostra le restrizioni I S A P I e C G I selezionate.

  3. Nel riquadro Restrizioni ISAPI e CGI selezionare Pagine server attive. Nel riquadro Azioni selezionare Nega per disabilitare ASP. Active Server Pages verrà visualizzato come Non consentito.

    Screenshot del riquadro Restrizioni I S A P I e C G I che mostra le pagine di Active Server selezionate. L'opzione Nega è selezionata nel riquadro Azioni.

Abilitare la traccia delle richieste non riuscite

Dopo aver abilitato la traccia delle richieste non riuscite, è necessario configurare il percorso dei file di log. In questa sezione si abiliterà La traccia delle richieste non riuscite per il sito Web predefinito e si specifica dove archiviare i file di log e quindi si configurerà 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 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 selezionare Traccia richieste non riuscite in Configura.

    Screenshot del riquadro Azioni che mostra l'opzione Traccia richieste non riuscite evidenziata nella scheda 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 visualizza la finestra di dialogo Modifica impostazioni di traccia richieste non riuscite del sito Web con il campo Directory di popolamento dei comandi e la casella di controllo Abilita selezionata.

  6. Selezionare 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>
       <!-- 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 configurare le definizioni degli errori per l'URL, incluse le aree da tracciare. Si risolverà un codice di stato 404.2 restituito da IIS per tutte le richieste alle estensioni che non sono ancora state abilitate. Consente di determinare quali estensioni specifiche è necessario abilitare. Per altre informazioni, vedere Codici di stato HTTP in IIS.

  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 del riquadro Home del sito Web predefinito che mostra la funzionalità Regole di traccia richieste non riuscite selezionata.

  5. Nel riquadro Azioni selezionare Aggiungi.....

  6. Nella pagina Specifica contenuto da traccia della procedura guidata Aggiungi regola di traccia richiesta non riuscita selezionare Tutto il contenuto (*) e quindi avanti.

    Screenshot che mostra l'Aggiunta guidata regola di traccia richieste non riuscite. L'opzione Tutto il contenuto è selezionata nella pagina Specifica contenuto da tracciare.

  7. 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 di Add Failed Request Tracing Rule che mostra la pagina Definisci condizioni di traccia e 404 punti 2 immessi come codice di stato.

  8. Selezionare Avanti.

  9. Nella pagina Seleziona provider di traccia selezionare la casella di controllo Server WWW in Provider 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, 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.

  10. In Verbosity (Verbosity) selezionare Verbose (Dettagliato).

    Nota

    Quando si installa il servizio ruolo Traccia, IIS installa i provider di traccia server WWW, ASP e ISAPI per impostazione predefinita. Se si installa ASP.NET 2.0 o versione successiva, IIS aggiunge automaticamente il provider di traccia ASPNET. Altri provider vengono installati dal pacchetto del programma di installazione application request routing (ARR), che installa anche il modulo Di riscrittura URL, Gestione web farm e Cache esterna. È possibile aggiungere altri provider di traccia usando l'elemento <add> all'interno dell'elemento <traceProviderDefinitions> .

    Screenshot dell'Aggiunta guidata regola di traccia richieste non riuscite che mostra il server WWW selezionato dall'elenco Provider e la sicurezza selezionata dal menu Aree.

  11. Seleziona Fine.

  12. Viene visualizzata la definizione seguente per il sito Web predefinito:

    Screenshot della pagina Regole di traccia richieste non riuscite che mostra il server WWW immesso 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 deve reinviare quanto segue:

    <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 consente di generare una richiesta non riuscita e di 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 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 e http://localhost/test.asp premere INVIO. Viene visualizzato il messaggio di errore "Errore HTTP 404.2 - Non trovato".

    Screenshot della finestra di Internet Explorer che mostra la pagina del messaggio H T T P Error 404 point 2 dash Not Found.

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

  1. Ora che è stata generata una richiesta non riuscita, aprire Esplora risorse e passare a %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

    Screenshot della cartella W 3 S V C 1 nella directory Req Log Files non riuscita.

    Nota

    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.

  2. 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 della finestra di dialogo Internet Explorer con l'opzione Continua per richiedere quando il contenuto del sito Web è bloccato.

  3. Nella finestra di dialogo Internet Explorer aggiungere about:internet all'elenco dei siti attendibili seguendo questa procedura:

    1. Selezionare il menu Strumenti e quindi opzioni Internet.
    2. Fare clic sulla scheda Protezione.
    3. Selezionare Zona attendibile e quindi Siti.
    4. In questo modo l'XSL può funzionare.
  4. Viene visualizzata una pagina Riepilogo richieste dopo l'aggiunta di about:internet all'elenco dei siti attendibili:

    Screenshot della pagina Riepilogo richieste con la tabella Errori e avvisi che visualizza le colonne Gravità, Evento e Nome modulo.

    Nella parte superiore viene registrato un riepilogo della richiesta non riuscita, con la tabella Errors & Warnings che identifica eventuali eventi di WARNINGgravità , ERRORo CRITICAL ERROR . In questo esempio il WARNING livello di gravità è dovuto a ISAPI RESTRICTION. 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 e esaminare il contenuto dell'evento.

Riepilogo

Sono state completate due attività: configurazione della traccia delle richieste non riuscite per acquisire le tracce per qualsiasi richiesta restituita da IIS con un codice di stato 404.2 e verificando che IIS abbia acquisito la traccia per la richiesta. È stato anche verificato che il file di log freb.xml non contiene richieste diverse da quelle con codice restituito 404.2. Quando è stato consultato il file di log degli errori, è stato 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 notare che il file di log non aggiunge queste tracce. È anche possibile modificare facilmente questo evento 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