류짱:Beyond MySelf

HTTP API의 오류 로깅 본문

Microsoft/IIS 6.0~7.5

HTTP API의 오류 로깅

リュちゃん 2012. 1. 20. 17:59

HTTP API가 기록하는 오류 유형


로그 위치: C:\WINDOWS\system32\LogFiles\HTTPERR 폴더에서 htterr.log
 

#Software: Microsoft HTTP API 1.0
#Version: 1.0
#Date: 2011-03-21 06:24:43
#Fields: date time c-ip c-port s-ip s-port cs-version cs-method cs-uri sc-status s-siteid s-reason s-queuename
2011-03-21 06:24:43 192.168.1.50 1036 192.168.1.50 80 HTTP/1.1 GET / 503 1 ConnLimit DefaultAppPool
2011-04-08 07:03:23 127.0.0.1 1054 127.0.0.1 8800 HTTP/0.0 Invalid - 400 - Verb -
2011-04-08 07:05:30 192.168.1.50 1059 192.168.1.50 8800 HTTP/0.0 Invalid - 400 - Verb -
2011-04-08 07:06:05 192.168.1.50 1060 192.168.1.50 8800 HTTP/0.0 Invalid - 400 - Verb -
2011-04-08 07:07:12 192.168.1.50 1063 192.168.1.50 8800 HTTP/0.0 Invalid - 400 - Verb -


HTTP API
는 잘못 처리된 클라이언트에 대한 오류 응답, 연결 시간 초과, 고아 요청 및 삭제된 연결을 기록합니다.


아래의 목록은 HTTP API가 기록하는 오류 유형을 나타냅니다.

·         클라이언트에 대한 응답 HTTP API는 클라이언트에 대한 오류 응답(: 마지막으로 받은 요청에서 구문 분석 오류로 인해 발생한 400 오류)을 보냅니다. HTTP API는 오류 응답을 보낸 후 연결을 종료합니다.

·         연결 시간 초과 HTTP API가 연결 시간을 초과합니다. 연결 시간이 초과될 때까지도 요청이 계속 보류 중이면 이 요청은 오류 로그에서 연결에 대한 자세한 정보를 제공하는 데 사용됩니다.

·         고아 요청 대기열에 사용자 모드 프로세스로 라우팅되는 요청이 아직 남아 있을 때 프로세스가 예기치 않게 종료됩니다. HTTP API는 오류 로그에 고아 요청을 기록합니다.

특정 오류 형식은 항상 각 오류 행의 마지막 필드로 나타나는 원인 문구 문자열에서 지정됩니다. 아래의 표는 HTTP API 원인 문구를 나타냅니다.

원인 문구

설명

AppOffline

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 응용 프로그램 오류로 인해 응용 프로그램이 오프라인 상태가 되었기 때문에 서비스를 사용할 수 없습니다.

AppPoolTimer

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 응용 프로그램 풀 프로세스가 사용 중이어서 요청을 처리할 수 없기 때문에 서비스를 사용할 수 없습니다.

AppShutdown

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 응용 프로그램이 관리자 정책에 대한 응답으로 자동으로 종료되기 때문에 서비스를 사용할 수 없습니다.

BadRequest

요청을 처리하는 동안 구문 분석 오류가 발생했습니다.

Client_Reset

요청이 작업자 프로세서에 할당되기 전에 클라이언트와 서버 간 연결이 닫혔습니다. 이 동작의 가장 일반적인 원인은 클라이언트가 서버와의 연결을 미리 닫는 것입니다.

Connection_Abandoned_By_AppPool

응용 프로그램 풀의 작업자 프로세스가 핸들을 닫아서 보류 중인 요청의 연결을 끊거나 예기치 않게 종료되었습니다.

Connection_Abandoned_By_ReqQueue

응용 프로그램 풀의 작업자 프로세스가 핸들을 닫아서 보류 중인 요청의 연결을 끊거나 예기치 않게 종료되었습니다. Windows Vista Windows Server 2008에만 해당됩니다.

Connection_Dropped

서버가 최종 응답 패킷을 전송하기 전에 클라이언트와 서버 간 연결이 닫혔습니다. 이 동작의 가장 일반적인 원인은 클라이언트가 서버와의 연결을 미리 닫는 것입니다.

Connection_Dropped_List_Full

클라이언트와 서버 간의 삭제된 연결 목록이 꽉 찼습니다. Windows Vista Windows Server 2008에만 해당됩니다.

ConnLimit

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 사이트 수준 연결 한계에 도달했거나 초과했기 때문에 서비스를 사용할 수 없습니다.

Connections_Refused

커널 NonPagedPool 메모리가 20MB 아래로 떨어지고 http.sys가 새 연결 수신을 중단했습니다.

사용 안 함

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 관리자가 응용 프로그램을 오프라인 상태로 만들었기 때문에서 서비스를 사용할 수 없습니다.

EntityTooLarge

엔터티가 허용된 최대 크기를 초과했습니다.

FieldLength

필드 길이 한계를 초과했습니다.

Forbidden

구문 분석 동안 금지된 요소나 시퀀스가 발생했습니다.

머리글

머리글에서 구문 분석 오류가 발생했습니다.

Hostname

호스트 이름을 처리하는 동안 구문 분석 오류가 발생했습니다.

내부

내부 서버 오류가 발생했습니다(HTTP 오류 500).

Invalid_CR/LF

잘못된 캐리지 리턴이나 줄 바꿈이 발생했습니다.

LengthRequired

필수 길이 값이 없습니다.

N/A

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 메모리 할당 실패 같은 내부 오류가 발생했기 때문에 서비스를 사용할 수 없습니다.

N/I

알 수 없는 전송 인코딩으로 인해 "구현되지 않음" 오류가 발생했거나(HTTP 오류 501), "서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503).

숫자

숫자를 처리하는 동안 구문 분석 오류가 발생했습니다.

Precondition

필수 전제 조건이 없습니다.

QueueFull

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 응용 프로그램 요청 대기열이 꽉 찼기 때문에 서비스를 사용할 수 없습니다.

RequestLength

요청 길이 한계를 초과했습니다.

Timer_AppPool

서버 응용 프로그램이 대기열에서 가져와 요청을 처리할 때까지 요청이 응용 프로그램 풀 대기열에서 너무 오랫 동안 대기했기 때문에 연결이 만료되었습니다. 이 제한 시간은 ConnectionTimeout입니다. 기본적으로 이 값은 2분으로 설정됩니다.

Timer_ConnectionIdle

연결이 만료되어 계속 유휴 상태로 있습니다. 기본 ConnectionTimeout시간은 2분입니다.

Timer_EntityBody

요청 엔터티 본문이 도착하기 전에 연결이 만료되었습니다. 요청에 엔터티 본문이 있는 경우 HTTP API Timer_EntityBody 타이머를 켭니다. 처음에는 이 타이머의 제한이 ConnectionTimeout (보통 2)으로 설정됩니다. 이 요청에서 다른 데이터 표시가 수신될 때마다 HTTP API는 타이머를 재설정하여 연결에 추가적인 2(또는 ConnectionTimeout에 지정된 시간)을 더 제공합니다.

Timer_HeaderWait

요청에 대한 머리글 구문 분석을 수행하는 데 기본 제한인 2분보다 많이 소요되었기 때문에 연결이 만료되었습니다.

Timer_MinBytesPerSecond

클라이언트가 적절한 속도로 응답을 받지 못했기 때문에 연결이 만료되었습니다. 응답 전송 속도가 기본값인 초당 240바이트보다 느려졌습니다. 이 속도는 MinFileBytesPerSec 메타베이스 속성으로 제어할 수 있습니다.

Timer_ReqQueue

서버 응용 프로그램이 대기열에서 요청을 가져올 때까지 요청이 응용 프로그램 풀 대기열에서 너무 오랫 동안 대기했기 때문에 연결이 만료되었습니다. 이 제한 시간은 ConnectionTimeout입니다. 기본적으로 이 값은 2분으로 설정됩니다. Windows Vista Windows Server 2008에만 해당됩니다.

Timer_Response

예약됨. 현재 사용되고 있지 않습니다.

URL

URL을 처리하는 동안 구문 분석 오류가 발생했습니다.

URL_Length

URL이 허용되는 최대 크기를 초과했습니다.

Verb

동사를 처리하는 동안 구문 분석 오류가 발생했습니다.

Version_N/S

지원되지 않는 버전 오류가 발생했습니다(HTTP 오류 505).


[참고 자료]

BUG: WriteClient API를 사용하여 데이터를 보낼 때 IIS 6.0 IIS 5.0보다 느리다
http://support.microsoft.com/kb/840875/ko

Troubleshooting HTTP 401 errors in IIS
http://support.microsoft.com/kb/907273/en-us

Select W3C Fields to Log (IIS 7)
http://technet.microsoft.com/en-us/library/cc754702(WS.10).aspx

 

The HTTP status codes in IIS 7.0 and in IIS 7.5
http://support.microsoft.com/kb/943891/en-us

Additional properties are now available for logging in the Httperr#.log file in IIS 6.0 and IIS 7.0
http://support.microsoft.com/kb/832975/en-us 


감사합니다.^^