Сценарий 2. Пример средства синтаксического анализа с использованием трассировки etw

Чтобы создать отчет трассировки трассировки Событий Windows для компонента API HTTP-сервера, выполните действия, как показано в разделе "Создание отчета трассировки трассировки ETW" статьи Сценарий 1. Пример времени ожидания HTTP с помощью трассировки ETW и команд Netsh, но воспроизведите ошибку, относяющуюся к этому сценарию. В этом примере осуществляется доступ к веб-приложению с клиентского компьютера, что приводит к отображению на клиенте сообщения "400 bad request". Эти действия выполняются на сервере, так как на нем размещается веб-приложение.

Просмотр трассировки и диагностики

Полученный CSV-файл для трассировок можно просмотреть в Excel или любом средстве, поддерживающем формат CSV. В таблице 2 ниже приведены выдержки из примера файла трассировки (httptrace.csv). В отчете трассировки в столбце "Level" отображается запись со значением "2", которое представляет собой ошибку. Как отмечалось выше, компонент API HTTP-сервера следует уровням трассировки событий Windows, определенным в статье Сложный тип сложного типа LevelType.

К уровням трассировки событий Windows относятся: 1 Критический; 2 Ошибка; 3 Предупреждение; 4 Информационные; 5 Подробно.

При этой ошибке тип события (столбец типа) сообщает "ParseRequestFailed". В последующих столбцах для события ParseRequestFailed мы видим запись InvalidHost. Эта запись означает, что указанный узел в HTTP-запросе является неправильным в соответствии с протоколом HTTP. Обратите внимание, что столбец с записью InvalidHost не включен в таблицу для краткости и для того, чтобы избежать фрагментов несмежных столбцов.

Чтобы устранить эту проблему синтаксического анализа, необходимо исправить веб-клиент в соответствии с HTTP RFC.

Имя события Тип Идентификатор события Версия Channel 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. Выдержки из примера отчета о трассировке для проблемы синтаксического анализа