Identificativo articolo: 820729
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo vengono descritte le funzionalitÓ di registrazione degli errori delle API HTTP (Hypertext Transfer Protocol).

Alcuni errori che si verificano in un'applicazione basata su HTTP vengono automaticamente gestiti dall'API HTTP invece di essere passati nuovamente all'applicazione per la gestione. Questo comportamento si verifica perchÚ la frequenza di tali errori potrebbe, in caso contrario, provocare il flooding di un log eventi o di un gestore dell'applicazione.

Negli argomenti seguenti sono illustrati i vari aspetti della registrazione degli errori nelle API HTTP:

Informazioni

Configurazione della registrazione degli errori nelle API HTTP

Per consentire la configurazione della registrazione degli errori nelle API HTTP, andare alla sezione "Correzione automatica". Per configurare autonomamente la registrazione degli errori nelle API HTTP, andare alla sezione "Consenti correzione manuale".

Correzione automatica



Per risolvere il problema automaticamente, fare clic sul collegamento o sul pulsante Risolvi. Fare clic su Esegui nella finestra di dialogo Download file e attenersi alla procedura guidata Fix it.

Disable HTTP API error logging
Microsoft Fix it 50635
Enable HTTP API error logging
Microsoft Fix it 50634


Note
  • Questa procedura guidata Ŕ disponibile solo in lingua inglese. La correzione automatica, tuttavia, funziona anche per versioni di Windows in altre lingue.
  • Se non si sta utilizzando il computer che presenta il problema, Ŕ possibile salvare la soluzione Fix it su un'unitÓ di memoria flash o su un CD ed eseguirla sul computer interessato dal problema.



Correzione manuale

La registrazione degli errori nelle API HTTP Ŕ controllata mediante tre valori di una chiave HTTP \Parameters del Registro di sistema. Tali valori sono contenuti nella seguente chiave del Registro di sistema:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Nota: il percorso e il formato dei valori di configurazione pu˛ variare nelle versioni pi¨ recenti del sistema operativo Microsoft Windows.

Per modificare i valori del Registro di sistema e per visualizzare o modificare i file di registro e le cartelle in cui sono contenuti Ŕ necessario disporre delle credenziali dell'amministratore o dell'account di sistema locale.

Le informazioni di configurazione contenute nei valori di registro vengono lette all'avvio del driver API HTTP. Pertanto, se si modificano le impostazioni, Ŕ necessario interrompere il driver e riavviarlo affinchÚ i nuovi valori vengano letti. Per effettuare questa operazione, digitare i seguenti comandi di console:
net stop http
net start http
Per l'assegnazione dei nomi ai file di registro viene utilizzata la seguente convenzione di denominazione:
httperr + numero sequenza + .log
Esempio: httperr4.log
Si ha il passaggio al file di registro successivo della sequenza ogni volta che un file di registro raggiunge la dimensione massima specificata nel valore di registro ErrorLogFileTruncateSize. Questo valore non pu˛ essere inferiore a un megabyte (MB).

Se la configurazione della registrazione degli errori non Ŕ valida o se si verifica un errore durante la scrittura dei file di registro da parte dell'API HTTP, verrÓ utilizzata la registrazione degli eventi dell'API HTTP per notificare agli amministratori la mancata esecuzione della registrazione degli errori.

Nella tabella seguente sono descritti i valori di configurazione del Registro di sistema.
Riduci questa tabellaEspandi questa tabella
Valore del Registro di sistemaDescrizione
EnableErrorLoggingValore DWORD che pu˛ essere impostato su TRUE per abilitare la registrazione degli errori o su FALSE per disabilitarla. Il valore predefinito Ŕ TRUE.
ErrorLogFileTruncateSizeValore DWORD che consente di specificare la dimensione massima in byte di un file di registro degli errori. Il valore predefinito Ŕ un MB (0x100000).

Nota: il valore specificato non pu˛ essere inferiore al valore predefinito.
ErrorLoggingDirValore di stringa che consente di specificare la cartella in cui vengono archiviati i file di registrazione dell'API HTTP.

L'API HTTP crea una sottocartella HTTPERR nella cartella specificata e vi archivia i file di registrazione. A questa sottocartella e ai relativi file di registro vengono assegnate le stesse impostazioni di autorizzazione. L'account di amministratore e l'account di sistema locale dispongono di accesso completo. Agli altri utenti non Ŕ consentito l'accesso.

Quando non viene specificata alcuna cartella nel Registro di sistema, la cartella predefinita Ŕ la seguente:
%SystemRoot%\System32\LogFiles

Nota il valore di stringa ErrorLoggingDir deve essere un percorso locale completo. Tuttavia, pu˛ contenere la variabile %SystemRoot%. Impossibile utilizzare un'unitÓ di rete o una condivisione di rete.

Formattazione dei registri errori dell'API HTTP

In genere, il formato dei file di registro degli errori delle API HTTP Ŕ uguale a quello dei registri errori W3C, con la differenza che i file di registro degli errori delle API HTTP non includono i nomi di colonna. Per ogni riga di un registro errori dell'API HTTP Ŕ registrato un errore. I campi sono visualizzati secondo un ordine specifico, separati l'uno dall'altro da un unico carattere di spazio (0x0020). In ciascun campo, i segni pi¨ (0x002B) sostituiscono spazi, tabulazioni e caratteri di controllo non stampabili.

Nella tabella seguente sono indicati i vari campi e l'ordine in cui essi sono visualizzati in un record di registro errori.
Riduci questa tabellaEspandi questa tabella
CampoDescrizione
Data╚ conforme al formato W3C, basato su UTC (Coordinated Universal Time) e costituito sempre da dieci caratteri nel formato AAAA-MM-GG. Ad esempio, la data 1 maggio 2003 Ŕ espressa nella forma 2003-05-01.
Ora╚ conforme al formato W3C, basato su UTC e costituito sempre da otto caratteri nel formato HH:MM:SS. Ad esempio, le 17.30 (UTC) sono espresse nella forma 17:30:00.
Indirizzo IP del clientIndirizzo IP del client in cui si verifica l'errore. Pu˛ essere un indirizzo IPv4 o IPv6. Se l'indirizzo IP del client Ŕ un indirizzo IPv6, nell'indirizzo sarÓ incluso anche il campo relativo all'ID di ambito.
Porta del clientNumero di porta del client in cui si verifica l'errore.
Indirizzo IP del serverIndirizzo IP del server in cui si verifica l'errore. Pu˛ essere un indirizzo IPv4 o IPv6. Se l'indirizzo IP del server Ŕ un indirizzo IPv6, nell'indirizzo sarÓ incluso anche il campo relativo all'ID di ambito.
Porta del serverNumero di porta del server in cui si verifica l'errore.
Versione del protocolloVersione del protocollo in uso.

Se l'analisi della connessione non Ŕ stata sufficiente a individuare la versione del protocollo, come segnaposto per il campo vuoto viene utilizzato un trattino (0x002D).

Se il numero di versione principale o il numero di versione secondaria analizzato Ŕ maggiore o uguale a 10, la versione viene registrata nella forma HTTP/?.?.
VerboConsente di dichiarare passata l'ultima richiesta analizzata. Sono inclusi i verbi sconosciuti, ma tutti i verbi di dimensione maggiore ai 255 byte vengono troncati a questa dimensione. Se non Ŕ disponibile alcun verbo, come segnaposto per il campo vuoto viene utilizzato un trattino (0x002D).
URL cooked + queryURL e ogni query a tale URL associata, registrati come unico campo separato da un punto interrogativo (0x3F). Il campo viene troncato alla dimensione massima di 4096 byte.

Se l'URL Ŕ stato analizzato (URL cooked), viene registrato con la conversione della tabella codici locale e gestito come campo Unicode.

Se l'URL non Ŕ stato analizzato al momento della registrazione (URL non cooked), viene copiato nella forma in cui si trova, senza conversione Unicode.

Se l'URL non pu˛ essere analizzato dall'API HTTP, come segnaposto per il campo vuoto viene utilizzato un trattino (0x002D).
Stato del protocolloLo stato del protocollo non pu˛ essere un numero maggiore di 999.

Se lo stato del protocollo della risposta a una richiesta Ŕ disponibile, viene registrato in questo campo.

Se lo stato del protocollo non Ŕ disponibile, come segnaposto per il campo vuoto viene utilizzato un trattino (0x002D).
ID del sitoNon utilizzato in questa versione dell'API HTTP. In questo campo viene sempre utilizzato un trattino (0x002D) come segnaposto.
Enunciazione di erroreNel campo Ŕ contenuta una stringa che identifica il tipo di errore registrato. Questo campo non pu˛ essere mai vuoto.
Nome codaSi tratta del nome coda richiesto.
Le seguenti sono alcune righe di esempio di registro errori di un'API HTTP:
2002-07-05 18:45:09 172.31.77.6 2094 172.31.77.6 80 HTTP/1.1 GET /qos/1kbfile.txt 503 ? ConnLimit 2002-07-05 19:51:59 127.0.0.1 2780 127.0.0.1 80 HTTP/1.1 GET /ThisIsMyUrl.htm 400 ? Hostname 2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 HTTP/2.0 GET / 505 - Version_N/S 2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80 - - - - - Timer_MinBytesPerSecond

Tipi di errore registrati dall'API HTTP

Mediante la registrazione degli errori dell'API HTTP vengono registrati eventi, quali risposte di errore ai client, timeout della connessione, richieste orfane e connessioni interrotte, gestiti in modo non corretto.

Nell'elenco seguente sono illustrati i tipi di errori registrati dall'API HTTP:
  • Risposte ai client L'API HTTP invia una risposta di errore a un client, ad esempio un errore 400 provocato da un errore di analisi dell'ultima richiesta ricevuta. Quindi, la connessione viene terminata.
  • Timeout della connessione L'API HTTP ha determinato il timeout di una connessione. Se una richiesta Ŕ in sospeso al verificarsi del timeout della connessione, tale richiesta viene utilizzata per includere ulteriori informazioni sulla connessione all'interno del registro errori.
  • Richieste orfane Un processo in modalitÓ utente viene terminato in modo imprevisto mentre nella coda di instradamento al processo sono ancora presenti delle richieste. Le richieste orfane vengono registrate in un registro errori dell'API HTTP.
I tipi di errori specifici sono descritti nelle stringhe di enunciazione di errore visualizzate sempre come campo finale di ogni riga di errore. Nella tabella seguente sono illustrate le varie enunciazioni di errore dell'API HTTP.
Riduci questa tabellaEspandi questa tabella
Enunciazione di erroreDescrizione

AppOfflineSi Ŕ verificato un errore di servizio non disponibile (errore HTTP 503). Il servizio non Ŕ disponibile perchÚ, a causa di errori, l'applicazione Ŕ stata posta in modalitÓ non in linea.
AppPoolTimerSi Ŕ verificato un errore di servizio non disponibile (errore HTTP 503). Il servizio non Ŕ disponibile perchÚ il processo del pool di applicazioni Ŕ occupato e non Ŕ in grado di gestire la richiesta.
AppShutdownSi Ŕ verificato un errore di servizio non disponibile (errore HTTP 503). Il servizio non Ŕ disponibile perchÚ l'applicazione Ŕ stata arrestata automaticamente in conseguenza a criteri dell'amministratore.
BadRequestSi Ŕ verificato un errore di analisi durante l'elaborazione di una richiesta.
Client_ResetLa connessione tra client e server Ŕ stata chiusa prima che la richiesta potesse essere assegnata a un processo di lavoro. La causa pi¨ comune di tale comportamento Ŕ la prematura chiusura della connessione al server operata dal client.
Connection_Abandoned_By_AppPoolUn processo di lavoro del pool di applicazioni Ŕ terminato in modo imprevisto o ha lasciato orfana una richiesta in sospeso mediante la chiusura del relativo handle.
Connection_Abandoned_By_ReqQueueUn processo di lavoro del pool di applicazioni Ŕ terminato in modo imprevisto o ha lasciato orfana una richiesta in sospeso mediante la chiusura del relativo handle. Specifico per Windows Vista e Windows Server 2008.
Connection_DroppedLa connessione tra client e server Ŕ stata chiusa prima che il server potesse inviare il pacchetto di risposta finale. La causa pi¨ comune di tale comportamento Ŕ la prematura chiusura della connessione al server operata dal client.
Connection_Dropped_List_FullL'elenco delle connessioni interrotte tra client e server Ŕ completo. Specifico per Windows Vista e Windows Server 2008.
ConnLimitSi Ŕ verificato un errore di servizio non disponibile (errore HTTP 503). Il servizio non Ŕ disponibile perchÚ Ŕ stato raggiunto o superato il limite di connessioni a livello di sito.
Connections_RefusedLa memoria NonPagedPool del kernel Ŕ inferiore a 20 MB e http.sys non riceve pi¨ nuove connessioni
DisabledSi Ŕ verificato un errore di servizio non disponibile (errore HTTP 503). Il servizio non Ŕ disponibile perchÚ un amministratore ha posto l'applicazione in modalitÓ non in linea.
EntityTooLargeUn'entitÓ ha superato la dimensione massima consentita.
FieldLength╚ stato superato il limite di lunghezza di un campo.
ForbiddenDurante l'analisi Ŕ stato rilevato un elemento o una sequenza non consentiti.
HeaderSi Ŕ verificato un errore di analisi di un'intestazione.
HostnameSi Ŕ verificato un errore di analisi durante l'elaborazione di un nome host.
InternalSi Ŕ verificato un errore interno del server (errore HTTP 500).
Invalid_CR/LF╚ stato rilevato un ritorno a capo o un avanzamento riga non valido.
LengthRequiredUn valore di lunghezza obbligatorio Ŕ mancante.
N/ASi Ŕ verificato un errore di servizio non disponibile (errore HTTP 503). Il servizio non Ŕ disponibile a causa di un errore interno (ad esempio, errore di allocazione della memoria).
N/ISi Ŕ verificato un errore non implementato (errore HTTP 501) o un errore di servizio non disponibile (errore HTTP 503) a causa di una codifica di trasferimento sconosciuta.
NumberSi Ŕ verificato un errore di analisi durante l'elaborazione di un numero.
PreconditionUna precondizione obbligatoria Ŕ mancante.
QueueFullSi Ŕ verificato un errore di servizio non disponibile (errore HTTP 503). Il servizio non Ŕ disponibile perchÚ la coda di richieste dell'applicazione Ŕ piena.
RequestLength╚ stato superato il limite di lunghezza di una richiesta.
Timer_AppPoolLa connessione Ŕ scaduta perchÚ l'attesa di una richiesta in coda nel pool di applicazioni per l'estrazione dalla coda e l'elaborazione da parte di un'applicazione server ha superato il limite di timeout specificato in ConnectionTimeout (per impostazione predefinita, due minuti).
Timer_ConnectionIdleLa connessione Ŕ scaduta e rimane inattiva. Il valore predefinito di ConnectionTimeout Ŕ di due minuti.
Timer_EntityBodyLa connessione Ŕ scaduta prima che arrivasse il corpo dell'entitÓ della richiesta. Quando Ŕ noto che una richiesta dispone di un corpo di entitÓ, l'API HTTP attiva il timer Timer_EntityBody. Inizialmente, il limite di tale timer Ŕ impostato sul valore di ConnectionTimeout (in genere 2 minuti). Ogni volta che su questa richiesta viene ricevuta un'altra indicazione di dati, l'API HTTP reimposta il timer e assegna alla connessione altri due minuti (o il valore specificato in ConnectionTimeout).
Timer_HeaderWaitLa connessione Ŕ scaduta perchÚ l'analisi dell'intestazione di una richiesta richiedeva pi¨ tempo rispetto al limite predefinito di due minuti.
Timer_MinBytesPerSecondLa connessione Ŕ scaduta perchÚ il client non ha ricevuto una risposta a una velocitÓ considerata ragionevole. La velocitÓ di invio della risposta era inferiore a quella predefinita di 240 byte/sec. ╚ possibile controllare tale operazione con la proprietÓ metabaseMinFileBytesPerSec.
Timer_ReqQueueLa connessione Ŕ scaduta perchÚ l'attesa di una richiesta in coda nel pool di applicazioni per l'estrazione dalla coda da parte di un'applicazione server ha superato il limite di timeout specificato in ConnectionTimeout. Per impostazione predefinita, due minuti. Specifico per Windows Vista e Windows Server 2008.
Timer_ResponseRiservato. Attualmente non utilizzato.
Timer_SslRenegotiation La connessione Ŕ scaduta perchÚ la rinegoziazione SSL tra il client e il server impiega pi¨ del timeout predefinito di due minuti.
URLSi Ŕ verificato un errore di analisi durante l'elaborazione di un URL.
URL_LengthUn URL ha superato la dimensione massima consentita.
VerbSi Ŕ verificato un errore di analisi durante l'elaborazione di un verbo.
Version_N/SSi Ŕ verificato un errore di versione non supportata (errore HTTP 505).

Riferimenti

Per ulteriori informazioni su come aggiungere ulteriori campi di registrazione per gli errori HTTP di IIS, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
832975 Le proprietÓ aggiuntive sono ora disponibili per l'accesso al file Httperr#.log in IIS 6.0 e IIS 7.0

ProprietÓ

Identificativo articolo: 820729 - Ultima modifica: venerdý 30 novembre 2012 - Revisione: 7.0
Chiavi:á
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com