다음을 통해 공유


시나리오 2: ETW 추적을 사용하는 파서 예제

HTTP Server API 구성 요소에 대한 ETW 추적 보고서를 생성하려면 시나리오 1: HTTP 시간 제한 예제 ETW 추적 및 Netsh 명령을 사용하는 "ETW 추적 보고서 생성" 섹션에 표시된 대로 단계를 실행하지만 이 시나리오와 관련된 오류를 재현합니다. 이 예제에서는 클라이언트 컴퓨터에서 웹 애플리케이션에 액세스하여 클라이언트에 "400 잘못된 요청" 메시지가 표시됩니다. 이러한 단계는 웹 애플리케이션을 호스팅하기 때문에 서버에서 실행됩니다.

추적 및 진단 보기

추적에 대한 결과 CSV 파일은 Excel 또는 CSV 형식을 지원하는 모든 도구에서 볼 수 있습니다. 아래 표 2에서는 샘플 추적 파일(httptrace.csv)에서 발췌한 내용이 표시됩니다. 추적 보고서에서 "수준" 열에는 오류를 나타내는 값이 "2"인 항목이 표시됩니다. 위에서 설명한 것처럼 HTTP Server API 구성 요소는 LevelType 복합 형식 복합 형식 문서에 정의된 ETW 수준을 따릅니다.

ETW 수준은 다음과 같습니다. 1 중요; 2 오류; 3 경고; 4 정보; 5 자세한 정보.

이 오류로 이벤트 유형(형식 열)은 "ParseRequestFailed"를 보고합니다. ParseRequestFailed 이벤트에 대한 후속 열에는 "InvalidHost" 항목이 표시됩니다. 이 항목은 HTTP 프로토콜에 따라 HTTP 요청에서 식별된 호스트가 올바르지 않음을 의미합니다. "InvalidHost" 항목이 있는 열은 간결하고 연속되지 않은 열 발췌를 방지하기 위해 테이블에 포함되지 않습니다.

이 구문 분석 문제를 해결하려면 웹 클라이언트가 HTTP RFC를 준수하도록 수정되어야 합니다.

이벤트 이름 형식 이벤트 ID 버전 채널 Level
EventTrace 헤더 0 2 0 0
Microsoft-Windows-HttpService AddUrl 31 0 16 4
Microsoft-Windows-HttpService ConnConnect 21 0 16 4
Microsoft-Windows-HttpService ConnIdAssgn 22 0 16 4
Microsoft-Windows-HttpService RecvReq 1 0 16 4
Microsoft-Windows-HttpService ParseRequestFailed 52 0 16 2
Microsoft-Windows-HttpService LogFileWrite 51 0 16 4

 

표 2: 구문 분석 문제에 대한 샘플 추적 보고서에서 발췌