Устранение неполадок неудачных запросов с помощью трассировки в IIS 7
Область применения: службы IIS 7.0
Примечание.
Эта статья относится к IIS 7.0. Дополнительные версии см. в статье "Устранение неполадок неудачных запросов с помощью трассировки в IIS 8.5".
Трассировка на основе запросов доступна как на автономных серверах IIS, так и в веб-приложениях Azure и позволяет определить, что именно происходит с вашими запросами и почему, если вы можете воспроизвести проблему, которую вы испытываете. Проблемы, такие как низкая производительность в некоторых запросах или сбоях проверки подлинности в других запросах, или ошибка сервера 500 из ASP или ASP.NET часто может быть трудно устранить неполадки, если вы не зафиксировали трассировку проблемы при возникновении этой проблемы. В этой статье описывается трассировка неудачных запросов на сервере IIS. Сведения об этом с веб-приложениями Azure см. в статье "Устранение неполадок приложения в службе приложение Azure с помощью Visual Studio".
Трассировка неудачных запросов предназначена для буферизации событий трассировки для запроса и их очистки только на диск, если запрос завершается ошибкой, где вы предоставляете определение "сбой". Если вы хотите знать, почему вы получаете сообщения об ошибках 404.2 или начать зависание запроса, используйте трассировку неудачных запросов.
Ниже приведены иллюстрированные в этой статье задачи.
- Включение модуля трассировки неудачных запросов.
- Настройка семантики журнала трассировки неудачных запросов.
- Определение URL-адреса, для которого требуется сохранить трассировки неудачных запросов, включая определения сбоев и области для трассировки.
- Создание условия сбоя и просмотр результирующей трассировки.
Предварительные требования
Установить IIS
Перед выполнением задач, описанных в этой статье, необходимо установить IIS 7 или более поздней версии. Перейдите к http://localhost/
сведениям о том, установлены ли службы IIS. Если службы IIS не установлены, инструкции по установке см. в разделе "Установка IIS в Windows Server 2008 ". При установке СЛУЖБ IIS убедитесь, что также установлены следующие компоненты:
- ASP.NET (в разделе "Функции - разработки приложений world Wide Web Services - " ASP.NET)
- Трассировка (в разделе "Работоспособности и диагностики - веб-служб World Wide Web Services") -
Вход от имени администратора
Убедитесь, что учетная запись, используемая для входа, является учетной записью администратора или находится в группе "Администраторы".
Примечание.
Если вы входите в группу "Администраторы", вы не предоставляете права администратора по умолчанию. Вы должны запускать приложения от имени администратора, которые можно сделать, щелкнув правой кнопкой мыши значок приложения и выбрав "Запуск от имени администратора".
Создание резервной копии
Перед выполнением задач в следующих разделах необходимо создать резервную копию конфигурации.
Чтобы создать резервную копию конфигурации, выполните следующие действия.
Выберите "Пуск>всех программ>" Аксессуары.
Щелкните правой кнопкой мыши командную строку и выберите команду "Запустить от имени администратора".
В командной строке выполните следующую команду:
%windir%\system32\inetsrv\appcmd add backup cleanInstall
Создание примера содержимого
Перейдите к
%systemdrive%\inetpub\wwwroot
.Переместите содержимое в безопасное расположение (если вы хотите восстановить существующее содержимое) или удалите его.
Создайте пустой файл и назовите его test.asp.
В командной строке перейдите к файлу test.asp в \inetpub\wwwroot.
В файл test.asp вставьте следующее содержимое:
<h2>Failed Request Tracing Lab</h2><br> <br>Today's date is <% response.write(Date()) %>
Отключение ASP
Asp должен быть отключен для этой задачи. ASP отключен только в качестве примера и в целях задач в этой статье.
Отключение ASP
Откройте диспетчер служб IIS.
Дважды щелкните ограничения ISAPI и CGI.
Выберите страницы активных серверов. В области "Действия" выберите "Запретить", чтобы отключить ASP.
Включите трассировку невыполненных запросов.
После включения трассировки неудачных запросов необходимо настроить расположение файлов журнала. В этой задаче вы включите трассировку неудачных запросов для веб-сайта по умолчанию и укажите место размещения файлов журнала. Затем вы настроите сбой, для которого создаются журналы сбоев.
Шаг 1. Включение трассировки неудачных запросов для сайта и настройка каталога файлов журнала
Откройте командную строку с правами администратора и перейдите в папку %systemdrive%\windows\system32\inetsrv.
Запустите
inetmgr
, чтобы открыть диспетчер IIS.В области "Подключения" разверните имя компьютера, разверните узел "Сайты" и выберите "Веб-сайт по умолчанию".
В области "Действия" в разделе "Настройка" выберите "Трассировка неудачных запросов".
В диалоговом окне "Изменить параметры трассировки неудачных запросов" веб-сайта настройте следующее:
- Установите флажок "Включить".
- Сохраните значения по умолчанию для других параметров.
Нажмите кнопку ОК.
Журнал трассировки неудачных запросов теперь включен для веб-сайта по умолчанию. Проверьте файл %windir%\system32\inetsrv\config\applicationHost.config, чтобы убедиться, что конфигурация выглядит следующим образом:
<system.applicationHost>
<sites>
<!-- site & app defaults -->
<site name="Default Web Site" id="1">
<!-- other site configuration -->
<traceFailedRequestsLogging enabled="true" />
</site>
</sites>
</system.applicationHost>
Шаг 2. Настройка определений сбоев
На этом шаге вы настроите определения сбоев для URL-адреса, включая области трассировки. Вы устраните неполадки с 404.2, возвращаемой СЛУЖБАми IIS, для любых запросов к расширениям, которые еще не включены. Это помогает определить, какие расширения необходимо включить.
Откройте командную строку с правами администратора и перейдите в папку %systemdrive%\windows\system32\inetsrv.
Запустите
inetmgr
, чтобы открыть диспетчер IIS.В области "Подключения" разверните имя компьютера, разверните узел "Сайты" и выберите "Веб-сайт по умолчанию".
Дважды щелкните правила трассировки неудачных запросов.
Нажмите Готово.
В области "Действия" нажмите кнопку "Добавить".
В мастере добавления правила трассировки неудачных запросов на странице "Указание содержимого для трассировки" выберите все содержимое (*). Выберите Далее.
На странице "Определение условий трассировки" установите флажок "Код состояния" и введите 404.2 в качестве кода состояния для трассировки.
Выберите Далее.
На странице "Выбор поставщиков трассировки" в разделе "Поставщики" установите флажок "WWW-сервер". В разделе "Области" установите флажок "Безопасность " и снимите все остальные флажки.
Возникающая проблема приводит к возникновению события трассировки ошибок безопасности. Как правило, проблемы проверки подлинности и авторизации (включая проблемы с списком ограничений ISAPI) можно диагностировать с помощью www Server — конфигурации области безопасности для трассировки. Однако, так как таблица стилей FREB.xsl помогает выделить ошибки и предупреждения, можно по-прежнему использовать конфигурацию по умолчанию для регистрации всех событий во всех областях и поставщиках. В разделе "Подробные сведения" выберите "Подробно".
Нажмите Готово. Вы увидите следующее определение для веб-сайта по умолчанию:
Диспетчер IIS записывает конфигурацию в %windir%\system32\inetsrv\config\applicationHost.config
файл с помощью тега <location>
. Конфигурация должна выглядеть следующим образом:
<location path="Default Web Site">
<system.webServer>
<tracing>
<traceFailedRequests>
<add path="*">
<traceAreas>
<add provider="WWW Server" areas="Security" verbosity="Verbose" />
</traceAreas>
<failureDefinitions statusCodes="404.2" />
</add>
</traceFailedRequests>
</tracing>
</system.webServer>
</location>
Тестирование и просмотр файла журнала запроса на сбой
В этой задаче вы создадите неудачный запрос и просмотрите результирующий журнал трассировки. Вы уже настроили СЛУЖБЫ IIS для записи журналов трассировки для http://localhost/*.asp
запросов, которые завершаются сбоем с кодом ответа HTTP 404.2. Теперь убедитесь, что он работает.
Шаг 1. Создание ошибки и файла журнала запросов на сбой
Откройте новое окно Internet Explorer.
Введите следующий адрес:
http://localhost/test.asp
Вы получите ошибку "Ошибка HTTP 404.2 — не найдена".
Шаг 2. Просмотр файла журнала запроса на сбой
Теперь, когда вы создали неудачный запрос, откройте командную строку с правами администратора и перейдите к папке %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.
Запустите запуск , чтобы запустить окно Internet Explorer из каталога.
Обратите внимание на несколько моментов: когда IIS записывает файл журнала неудачных запросов, он записывает один файл на неудачный запрос. Таблица стилей freb.xsl также написана по одному каталогу. Это помогает при просмотре результирующего файла журнала запросов на сбой (например, fr000001.xml в этом примере).
Щелкните правой кнопкой мыши файл журнала для ошибки 404.2 и выберите "Открыть с помощью>Internet Explorer". Если это первый раз, когда вы открываете файл трассировки неудачных запросов, необходимо добавить about:internet в список доверенных сайтов, так как конфигурация расширенной безопасности Internet Explorer включена по умолчанию. Если да, вы увидите следующее:
В диалоговом окне Internet Explorer нажмите кнопку "Добавить", чтобы добавить сведения о:Internet в список доверенных сайтов. Это позволяет работать XSL. После добавления about:internet в список доверенных сайтов вы увидите следующее:
Сводка неудачного запроса регистрируется в верхней части таблицы "Ошибки и предупреждения", которая определяет все события, которые являются ПРЕДУПРЕЖДЕНИЯми, ОШИБКАми или КРИТИЧЕСКОЙ ОШИБКой в серьезности. В этом примере уровень серьезности WARNING обусловлен ограничением ISAPI. Изображение, которое вы пытались загрузить, было %windir%\system32\inetsrv\asp.dll.
Откройте необработанный XML-файл непосредственно с помощью текстового редактора и просмотрите содержимое каждого события.
Итоги
Вы выполнили две задачи: настроили трассировку неудачных запросов для отслеживания трассировок для любого запроса, возвращаемого IIS с кодом состояния 404.2, и убедились, что СЛУЖБЫ IIS захватили трассировку для запроса. Вы также проверили, что файл журнала freb.xml не содержал других запросов для выполненных запросов, так как запросы не содержали код возврата 404.2. При обращении к файлу журнала сбоев вы определили, что причина сбоя заключалась в том, что расширение было отключено для этого запроса. Вы можете попробовать другие страницы, отличные от HTML (например, .gif или .jpg файлов) и отметить, что файл журнала не добавляет эти трассировки. Вы также можете легко изменить это значение на 404 или записать ошибку, если запрос занимает более 30 секунд, задав поле timeTaken в ошибкахDefinitions.
Восстановление резервной копии
Теперь, когда вы выполнили задачи в этой статье, вы можете восстановить резервную копию конфигурации. Выполните следующую команду с правами администратора:
%windir%\system32\inetsrv\appcmd restore backup cleanInstall