IIS 7 - трассировка HTTP-запросов

Материал из 1GbWiki.

Перейти к: навигация, поиск

Содержание

[править] Общий вид

Веб-сервер IIS7 позволяет выполнять детальную трассировку исполнения HTTP-запроса, предоставляя полную информацию о процессе обработки HTTP-запроса на всех уровнях модулей IIS. Обычно эта функционалность требуется программистам, разработчикам сайта для отладки кода скриптов или подключаемых модулей, если проблема на их стороне не воспроизводится и отлажена быть не может.

В качестве примера демонстрируем несколько файлов трассировки:

  • fr000001.xml - трассировка исполнения запроса с кодом ответа 200
  • fr000002.xml - с кодом ответа 404.

Файлы трассировки с расширением .XML имеет смысл открывать браузером Internet Exolorer 7, другие браузеры с данными файлами совместимы в меньшей степени (вообще не совместимы). Вы так же можете смотреть данные файлы любым текстовым редактором или редактором XML, но это не наглядно и менее удобно. Скачать сами файлы можно тут - trace.zip.

Важно понимать, что трассировка запросов не является средством ведения логов веб-сервера и не предназначена для этого. Это именно средство получения информации для решения некоторой проблемы. Использовать трассировку в качестве лог-файлов веб-сервера нельзя, для получения лог-фалов веб-сервера IIS посмотрите, пожалуйста, статью доступ к логам веб-сервера.

[править] Получение текста ошибки для запроса

По умолчанию IIS7 сконфигурирован таким образом, что текст ошибки клиенту не передаётся, эта информация блокируется сервером по соображениям безопасности. Если вам нужно только получать тексты ошибок (обычно это актуально для ASP, ASP.NET и ошибок конфигурации web.config), вы можете выполнить инструкции следующей статьи - IIS 7 - показать ошибку 500

Обратите внимание, Internet Explorer с настройками по умолчанию не показывает тексты ошибок заменяя их стандартными страницами, даже если сервер предоставляет тексты ошибок. Откройте страницу с ошибкой браузером Firefox или Opera, они отображают текст ошибки с настройками по умолчанию.

[править] Установка папки для файлов трассировки

По умолчанию файлы трассировки сохраняются в папку, к которой пользователь хостинга не имеет доступа. Для того, что бы получить файлы трассировки необходимо назначить для сохранения файлов папку внутри сайта, к которой у вас есть доступ по FTP или HTTP. К сожалению, самостоятельно сделать этого вы не можете. Для активации возможности трассировки в папку на сайте вам следует обратиться в службу поддержки.

По умолчанию количество файлов трассировки ограничено цифрой 50. Это не значит, что по достижении этого числа файлов сбор трассировки прекратится, при достижении этой цифры часть старых файлов будет удалена. Трассировка продолжается, пока параметры трассировки не будут удалены из файла Web.config

[править] Запуск и остановка трассировки

Для начала сбора трассировки необходимо вписать в Web.config следующий элемент <tracing>, для остановки трассировки его следует удалить или закомментировать.

Важно! Пожалуйста, не забывайте останавливать трассировку. Забытая активная трассировка может являтся основанием для остановки сайта службой поддержки, так как на её ведение потребляется серверных рессурсов существенно больше, чем без неё.

<configuration>
  <system.webServer>
    <tracing>
      <traceFailedRequests>
        <add path="*">
          <traceAreas>
            <add provider="ASP" verbosity="Verbose" />
            <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
            <add provider="ISAPI Extension" verbosity="Verbose" />
            <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module" verbosity="Verbose" />
          </traceAreas>
          <failureDefinitions statusCodes="500" />
        </add>
      </traceFailedRequests>
    </tracing>
  </system.webServer>
</configuration>

Важным параметром является statusCodes="500", тут вы можете установить, какие запросы вам следует сохранять в виде файлов трассировки. В примере сохраняются только запросы результатом которых является ошибка 500 - "Internal Server Error", вы можете задать этот параметр следующим образом для сохранения всех запросов: statusCodes="100-999"

[править] Ссылки по теме

Личные инструменты