Types of Errors Logged by the HTTP Server API
The HTTP Server API logs error responses to clients, connection time-outs, orphaned requests, and dropped connections that are handled incorrectly.
The following table lists errors logged by HTTP.
Error | Description |
---|---|
"Responses to clients" |
The HTTP Server API sends an error response to a client, for example, a 400 error caused by a parse error in the last received request. After sending the error response, the HTTP Server API terminates the connection. |
"Connection time-outs" |
The HTTP Server API times out a connection. If a request is pending when the connection times out, it is used to provide more information about the connection in the error log. |
"Orphaned requests" |
A user-mode process terminates unexpectedly while there are still queued requests that are routed to that process. The HTTP Server API logs the orphaned requests in the error log. |
Specific error types are designated by Reason Phrase strings that always appear as the last field of each error line. The following table lists HTTP Reason Phrases.
Reason Phrase | Description |
---|---|
AppOffline |
A service unavailable error occurred (an HTTP error 503). The service is unavailable because application errors caused the application to be taken offline. |
AppPoolTimer |
A service unavailable error occurred (HTTP error 503). The service is unavailable because the application pool process is too busy to handle the request. |
AppShutdown |
A service unavailable error occurred (HTTP error 503). The service is unavailable because the application shut down automatically in response to administrator policy. |
BadRequest |
A parse error was encountered while processing a request. |
Connection_Abandoned_By_AppPool |
A worker process from the application pool that crashed or orphaned a pending request by closing its handle. |
Connection_Dropped |
IIS failed to return the logging data within the specified time limit (1 minute) due to a client disconnect (or reset) before the response was logged. The request was not necessarily dropped; the client may have already received the response. |
ConnLimit |
A service unavailable error occurred (HTTP error 503). The service is unavailable because the site level connection limit has been reached or exceeded. |
Disabled |
A service unavailable error occurred (HTTP error 503). The service is unavailable because an administrator has taken the application offline. |
EntityTooLarge |
An entity exceeded the maximum size allowed. |
FieldLength |
A field length limit was exceeded. |
Forbidden |
A forbidden element or sequence was encountered while parsing. |
Header |
A parse error was encountered in a header. |
Hostname |
A parse error was encountered while processing a Hostname. |
Internal |
An internal server error occurred (HTTP error 500). |
Invalid_CR/LF |
An illegal carriage return/line feed was encountered. |
LengthRequired |
A required length value was missing. |
N/A |
A service unavailable error occurred (HTTP error 503). The service is unavailable as a result of an internal error such as a memory allocation failure. |
N/I |
A not-implemented error occurred (HTTP error 501), or a service unavailable error occurred (HTTP error 503) as a result of an unknown transfer encoding. |
Number |
A parse error was encountered while processing a number. |
Precondition |
A required precondition was missing. |
QueueFull |
A service unavailable error occurred (HTTP error 503). The service is unavailable because the application request queue is full. |
RequestLength |
A request length limit was exceeded. |
Timer_AppPool |
The connection expired because a request waited too long in an application pool queue for a server application to remove it from the queue and process it. This timeout duration is ConnectionTimeout, which is set by default to 2 minutes. |
Timer_ConnectionIdle |
The connection expired and remains idle. The default ConnectionTimeout duration is 2 minutes. |
Timer_EntityBody |
The connection expired before the request entity body arrived. When it is clear that a request has an entity body, the HTTP Server API turns on the Timer_EntityBody timer. The limit of this timer is initially set to the ConnectionTimeout value (normally 2 minutes). Each time another data indication is received on this request, the HTTP Server API resets the timer to give the connection an additional 2 minutes (or whatever is specified in ConnectionTimeout). |
Timer_HeaderWait |
The connection expired because the header parsing for a request took more time than the default limit of 2 minutes. |
Timer_MinBytesPerSecond |
The connection expired because the client was not receiving a response at a reasonable speed, which means that the response send rate was slower than the default of 150 bytes/sec. |
Timer_Response |
Reserved. Not used. |
URL |
A parse error was encountered while processing a URL. |
URL_Length |
A URL exceeded the maximum allowed size. |
Verb |
A parse error was encountered while processing a verb. |
Version_N/S |
A version-not-supported error occurred (HTTP error 505). |