Uso delle regole di traccia delle richieste non riuscite per risolvere i problemi di routing delle richieste di applicazione
Si applica a: Internet Information Services 7.0 e versioni successive
La traccia delle richieste non riuscite è un potente strumento per la risoluzione degli errori di elaborazione delle richieste in IIS 7.0 e versioni successive. Questo articolo illustra i passaggi per abilitare le regole di traccia delle richieste non riuscite per eseguire il debug degli errori e i passaggi di traccia in Routing delle richieste di applicazione. Per altre informazioni sulle regole di traccia delle richieste non riuscite, vedere Risolvere i problemi relativi alle richieste non riuscite tramite la traccia in IIS 8.5.
Obiettivo
Per configurare le regole di traccia delle richieste non riuscite e comprendere cosa cercare durante la risoluzione dei problemi di routing delle richieste di applicazione.
Prerequisiti
Questa procedura dettagliata richiede i prerequisiti seguenti:
- IIS 7.0 o versione successiva in Windows 2008 (qualsiasi SKU) o versione successiva con servizio ruolo di traccia installato per IIS.
- Routing delle richieste di applicazioni Microsoft e moduli dipendenti.
- Almeno due server applicazioni con siti e applicazioni funzionano.
Se il routing delle richieste di applicazione non è stato installato, scaricarlo dall'Area download e installarlo seguendo la procedura descritta in Installare il routing delle richieste di applicazione.
Un altro prerequisito è l'uso del modulo di routing delle richieste di applicazione e la configurazione del routing delle richieste di applicazione. Il routing delle richieste di applicazione deve essere in ordine di funzionamento prima di procedere con le sezioni seguenti.
Passaggio 1: Configurare regole di traccia richieste non riuscite
Configurare le regole di traccia delle richieste non riuscite per il routing delle richieste di applicazione usando l'interfaccia utente o la riga di comando.
Come configurare le regole di traccia delle richieste non riuscite usando l'interfaccia utente
- Avviare Gestione Internet Information Services (IIS) (inetmgr).
- Selezionare Sito Web predefinito.
- Nel riquadro Azioni selezionare Traccia richieste non riuscite in Configura.
- Nella finestra di dialogo Modifica impostazioni di traccia richieste non riuscite del sito Web selezionare la casella di controllo Abilita .
- Selezionare OK per salvare le modifiche.
- Selezionare Sito Web predefinito.
- Fare doppio clic su Regole di traccia richieste non riuscite.
- Nel riquadro Azioni selezionare Aggiungi.....
Selezionare Tutto il contenuto (*)e quindi avanti. - Selezionare Codici di stato: e immettere 200-399.
Selezionare Avanti. La configurazione precedente ha creato una regola di traccia delle richieste non riuscite che scrive le tracce quando il codice di stato rientra tra 200 e 399. - Deselezionare ASP, ASPNET e l'estensione ISAPI. Dopo aver selezionato WWW Server, deselezionare tutti gli elementi in Aree:, ad eccezione di Riscrittura e RequestRouting. Poiché il routing delle richieste dell'applicazione si basa sul modulo di riscrittura URL per controllare le richieste in ingresso, è consigliabile abilitare le tracce sia per il routing delle richieste di applicazione (RequestRouting) che per il modulo di riscrittura URL (Riscrivi).
Per altre informazioni sulle tracce del modulo di riscrittura URL, vedere Utilizzo delle regole di riscrittura delle richieste non riuscite per la riscrittura delle tracce . - Seleziona Fine.
Come configurare le regole di traccia delle richieste non riuscite tramite la riga di comando
Aprire un prompt dei comandi con privilegi di amministratore.
Vai a
%windir%\system32\inetsrv
.Per abilitare la traccia delle richieste non riuscite nel sito Web predefinito, eseguire il comando seguente:
appcmd set site "Default Web Site" -traceFailedRequestsLogging.enabled:"true" /commit:apphost
Per configurare le regole di traccia delle richieste non riuscite, come illustrato nell'interfaccia utente precedente, eseguire i comandi seguenti:
appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*']"
appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*'].traceAreas.[provider='WWW Server',areas='Rewrite,RequestRouting',verbosity='Verbose']"
appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /[path='*'].failureDefinitions.statusCodes:"200-399"
Passaggio 2: Analizzare i log di traccia delle richieste non riuscite
In questo passaggio si invieranno richieste al routing delle richieste dell'applicazione e si analizzeranno i log di traccia delle richieste non riuscite.
Per visualizzare i log di traccia delle richieste non riuscite
Passare alla directory in cui vengono scritti i log di traccia delle richieste non riuscite. Per impostazione predefinita, il percorso è
%SystemDrive%\inetpub\Logs\FailedReqLogFiles\
.Modificare la directory nella cartella corrispondente al sito Web predefinito. Per impostazione predefinita, è W3SVC1. Se non si è certi, selezionare il sito Web predefinito in Gestione IIS e quindi selezionare Impostazioni avanzate nel riquadro Azioni . Il valore dell'ID indica la cartella corrispondente. Ad esempio, l'ID 1 corrisponde a W3SVC1.
Se sono presenti file XML, rimuoverli digitando:
del *.xml
Inviare una richiesta al routing delle richieste dell'applicazione. Se il routing delle richieste di applicazione funziona correttamente, genera una risposta 200, che rientra nell'intervallo da 200 a 399 specificato nel passaggio 1. Di conseguenza, i log vengono scritti nella posizione precedente.
Elencare i file nella directory per verificare che vengano scritti nuovi file XML.
Aprire il file XML. Selezionare Dettagli richiesta. Selezionare Complete Request Trace (Completa traccia richiesta) e quindi Select Expand All (Espandi tutto). L'immagine seguente è un esempio di log di traccia delle richieste non riuscite per il routing delle richieste dell'applicazione:
Prestare maggiore attenzione alle sezioni seguenti:
GENERAL_REQUEST_HEADERS:
- Intestazioni: mostra l'intestazione HTTP ricevuta da Application Request Routing.
ARR_REQUEST_ROUTED:
- WebFarm: indica il nome del gruppo di server in cui viene instradata la richiesta.
- Server: indica il server di destinazione in cui viene instradata la richiesta.
- Algoritmo: indica quale algoritmo di bilanciamento del carico viene usato.
- RoutingReason: indica la decisione alla base del motivo per cui il server è selezionato.
ARR_SERVER_STATS:
- Stato: disponibilità del server di destinazione.
- TotalRequests: statistica di runtime sul numero di richieste inviate al server.
- CurrentRequests: statistiche di runtime sul numero simultaneo di richieste HTTP al server.
- BytesSent: statistica di runtime sulla quantità di dati in KB inviati al server.
- BytesReceived: statistiche di runtime sulla quantità di dati in KB ricevuti da questo server.
- ResponseTime: statistiche di runtime sulla velocità di risposta in ms di questo server.
GENERAL_RESPONSE_HEADERS
- Intestazioni: mostra l'intestazione HTTP della risposta dal server di destinazione.
GENERAL_RESPONSE_ENTITY_BUFFER
- Buffer: mostra l'entità di risposta dal server di destinazione.
Sono stati aggiunti i timestamp seguenti per indicare gli orari di inizio e fine degli eventi corrispondenti per profilare le prestazioni del routing delle richieste di applicazione:
- ARR_REQUEST_HEADERS_START
- ARR_REQUEST_HEADERS_END
- ARR_RESPONSE_HEADERS_START
- ARR_RESPONSE_HEADERS_END
- ARR_RESPONSE_ENTITY_START
- ARR_RESPONSE_ENTITY_END
- ARR_RESPONSE_ENTITY_START
- ARR_RESPONSE_ENTITY_END
Se si raccolgono i log di traccia delle richieste non riuscite nel core del server, copiare i log con il foglio di stile freb.xsl in un computer in cui è disponibile un browser.
Riepilogo
Le regole di traccia richieste non riuscite sono state configurate correttamente per il routing delle richieste dell'applicazione. Le regole di traccia delle richieste non riuscite possono essere usate per risolvere i problemi ed eseguire il debug del routing delle richieste dell'applicazione, nonché per comprendere le decisioni di routing, inclusi gli algoritmi di bilanciamento del carico, prese nella selezione del server di destinazione per una determinata richiesta.