Трассировка трассировки <>

Общие сведения

Группа <tracing> разделов содержит настроенные параметры трассировки неудачных запросов и определения поставщика трассировки, предоставленные во время установки или на веб-сервере IIS 7.

Трассировка на основе запросов предоставляет отличный способ выяснить, что именно происходит с вашими запросами и почему это происходит, при условии, что вы можете воспроизвести проблему, с которой сталкивается сервер. Такие проблемы, как низкая производительность в некоторых запросах, сбои, связанные с проверкой подлинности в других запросах, или ошибки кода состояния HTTP 500 на страницах Active Server (ASP) или ASP.NET часто могут быть невероятно трудными для устранения неполадок, если вы не задокуировали трассировку проблемы при ее возникновении. Трассировка неудачных запросов предназначена для буферизации событий трассировки для запроса и сбрасывает их на диск только при сбое запроса на основе предоставленного определения сбоя.

Службы IIS 7 отображают эти сообщения только после установки и включения модуля трассировки. Эти сообщения и другие сведения трассировки хранятся в специальном файле с именем файл журнала трассировки неудачных событий. Эти файлы можно открыть в веб-браузере и просмотреть события трассировки, созданные службами IIS, пользовательские события трассировки, созданные сторонними модулями, или и то, и другое. По умолчанию IIS 7 сохраняет эти файлы в папке %systemroot%\inetpub\logs\FailedReqLogFiles.

Раздел <tracing> содержит <traceFailedRequests> элемент и <traceProviderDefinition> элемент . Первый элемент настраивает трассировку неудачных запросов для веб-сайта или приложения, а второй элемент определяет поставщиков трассировки, доступных на сервере. По умолчанию IIS 7 включает поставщики трассировки для ASP, ASP.NET, расширений API Internet Server (ISAPI) и самого веб-сервера. Можно также включить настраиваемые поставщики трассировки.

Совместимость

Версия Примечания
IIS 10.0 Элемент <tracing> не был изменен в IIS 10.0.
IIS 8,5 Элемент <tracing> не был изменен в IIS 8.5.
IIS 8,0 Элемент <tracing> не был изменен в IIS 8.0.
IIS 7,5 Элемент <tracing> не был изменен в IIS 7.5.
IIS 7.0 Элемент <tracing> появился в IIS 7.0.
IIS 6,0 Н/Д

Настройка

После завершения установки iis 7 и более поздних версий по умолчанию необходимо установить службу роли трассировки, чтобы использовать трассировку неудачных запросов. После установки службы ролей по-прежнему необходимо включить трассировку неудачных запросов на уровне сайта, приложения или каталога.

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера.
  2. В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
  3. В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
  4. На странице Роли сервера разверните узел Веб-сервер (IIS),Веб-сервер, Затем — Работоспособность и диагностика, а затем выберите Трассировка. Щелкните Далее.
    Снимок экрана: страница .
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите панель управления.
  2. В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, Веб-службы, Работоспособность и диагностика, а затем выберите Трассировка.
    Снимок экрана: диалоговое окно - Нажмите кнопку ОК.
  4. Щелкните Закрыть.

Windows Server 2008 или Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, выберите Администрирование, а затем диспетчер сервера.
  2. В области иерархии диспетчер сервера разверните узел Роли и выберите Веб-сервер (IIS).
  3. На панели Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
  4. На странице Выбор служб ролеймастера добавления служб ролей выберите Трассировка и нажмите кнопку Далее.
    Снимок экрана: мастер добавления служб ролей со страницей
  5. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  6. На странице Результаты нажмите кнопку Закрыть.

Windows Vista или Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем панель управления.
  2. В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, затем Веб-службы, а затем Работоспособность и диагностика.
  4. Выберите Трассировка и нажмите кнопку ОК.
    Снимок экрана: диалоговое окно

Инструкции

Включение трассировки

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения выберите подключение к серверу, сайт, приложение или каталог, для которых требуется настроить трассировку неудачных запросов.

  3. В области Действия щелкните Трассировка неудачных запросов...
    Снимок экрана: окно диспетчера I IS с домашней страницей веб-сайта по умолчанию.

  4. В диалоговом окне Изменение параметров трассировки неудачных запросов веб-сайта установите флажок Включить проверка, чтобы включить трассировку, оставьте значение по умолчанию или введите новый каталог, в котором нужно хранить файлы журналов неудачных запросов, в поле Каталог введите количество файлов трассировки неудачных запросов, которые нужно сохранить в поле Максимальное число файлов трассировки. и нажмите кнопку ОК.
    Снимок экрана: диалоговое окно

Настройка определений сбоев

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. На панели Подключения перейдите к подключению, сайту, приложению или каталогу, для которого требуется настроить трассировку неудачных запросов.

  3. На домашней панели дважды щелкните Правила трассировки неудачных запросов.
    Снимок экрана диспетчера I I SS с домашней страницей веб-сайта по умолчанию. Выделен значок для правил трассировки неудачных запросов.

  4. В области Действия нажмите кнопку Добавить...

  5. На странице Указание содержимого для трассировки мастера добавления правила трассировки неудачных запросов выберите тип контента, который требуется отследить, и нажмите кнопку Далее.
    Снимок экрана: мастер добавления правила трассировки неудачных запросов со страницей

  6. На странице Определение условий трассировки выберите условия, которые требуется выполнить трассировку, и нажмите кнопку Далее. Условия трассировки могут включать любое сочетание кодов состояния, ограничение времени, которое должен принимать запрос, или серьезность события. Если указать все условия, первое условие, которое выполняется, создает файл журнала трассировки неудачных запросов.
    Снимок экрана: мастер добавления правила трассировки неудачных запросов со страницей Определение содержимого для трассировки.

  7. На странице Выбор поставщиков трассировки выберите один или несколько поставщиков трассировки в разделе Поставщики.
    Снимок экрана: мастер добавления правила трассировки неудачных запросов со страницей Выбора поставщиков трассировки.

  8. На странице Выбор поставщиков трассировки выберите один или несколько уровней детализации в разделе Детализация.
    Снимок экрана: мастер добавления правила трассировки неудачных запросов со страницей Выбора поставщиков трассировки. Выбраны W W W Server и Предупреждения.

  9. Если вы выбрали поставщик трассировки ASPNET или WWW Server на шаге 8, выберите одну или несколько функциональных областей для трассировки поставщика в разделе Области страницы Выбор поставщиков трассировки .

  10. Нажмите кнопку Готово.

Параметр Configuration

Группу разделов <tracing> можно настроить на уровне сервера в файле ApplicationHost.config или на уровне сайта, приложения или каталога в файле Web.config.

Атрибуты

Отсутствует.

Дочерние элементы

Элемент Описание
traceFailedRequests Необязательный элемент.

Содержит параметры для трассировки неудачных запросов на веб-сервере.
traceProviderDefinitions Необязательный элемент.

Определяет поставщики трассировки, используемые на веб-сервере.

Образец конфигурации

В следующем примере конфигурации трассировка настраивается на уровне сервера в файле ApplicationHost.config. Он задает трассировку для всех ASPX-файлов, использует <traceAreas> элемент для задания поставщика ASPNET и трассировки для всех ASP.NET областей, таких как Инфраструктура, Модуль, Page и AppServices. В примере также используется атрибут детализации, чтобы задать предупреждение для объема сведений, возвращаемых в файл трассировки. Наконец, в примере используется <failureDefinitions> элемент для трассировки только запросов, которые создают код состояния HTTP 404.

<tracing>
   <traceFailedRequests>
      <add path="*.aspx">
         <traceAreas>
            <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Warning" />
         </traceAreas>
         <failureDefinitions statusCodes="404" />
      </add>
   </traceFailedRequests>
</tracing>

Пример кода

В следующих примерах включена подробная трассировка неудачных запросов для ошибок HTTP 500 в ASP.NET содержимого во всех запросах к страницам *.aspx.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /+"[path='*.aspx']" 

appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /+"[path='*.aspx'].traceAreas.[provider='ASPNET',areas='Infrastructure,Module,Page,AppServices',verbosity='Verbose']" 

appcmd.exe set config "Contoso" -section:system.webServer/tracing/traceFailedRequests /[path='*.aspx'].failureDefinitions.statusCodes:"500"

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Contoso");
         ConfigurationSection traceFailedRequestsSection = config.GetSection("system.webServer/tracing/traceFailedRequests");
         ConfigurationElementCollection traceFailedRequestsCollection = traceFailedRequestsSection.GetCollection();

         ConfigurationElement addElement = traceFailedRequestsCollection.CreateElement("add");
         addElement["path"] = @"*.aspx";

         ConfigurationElementCollection traceAreasCollection = addElement.GetCollection("traceAreas");
         ConfigurationElement addElement1 = traceAreasCollection.CreateElement("add");
         addElement1["provider"] = @"ASPNET";
         addElement1["areas"] = @"Infrastructure,Module,Page,AppServices";
         addElement1["verbosity"] = @"Verbose";
         traceAreasCollection.Add(addElement1);

         ConfigurationElement failureDefinitionsElement = addElement.GetChildElement("failureDefinitions");
         failureDefinitionsElement["statusCodes"] = @"500";
         traceFailedRequestsCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Contoso")
      Dim traceFailedRequestsSection As ConfigurationSection = config.GetSection("system.webServer/tracing/traceFailedRequests")
      Dim traceFailedRequestsCollection As ConfigurationElementCollection = traceFailedRequestsSection.GetCollection

      Dim addElement As ConfigurationElement = traceFailedRequestsCollection.CreateElement("add")
      addElement("path") = "*.aspx"
      Dim traceAreasCollection As ConfigurationElementCollection = addElement.GetCollection("traceAreas")
      Dim addElement1 As ConfigurationElement = traceAreasCollection.CreateElement("add")
      addElement1("provider") = "ASPNET"
      addElement1("areas") = "Infrastructure,Module,Page,AppServices"
      addElement1("verbosity") = "Verbose"
      traceAreasCollection.Add(addElement1)

      Dim failureDefinitionsElement As ConfigurationElement = addElement.GetChildElement("failureDefinitions")
      failureDefinitionsElement("statusCodes") = "500"
      traceFailedRequestsCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var traceFailedRequestsSection = adminManager.GetAdminSection("system.webServer/tracing/traceFailedRequests", "MACHINE/WEBROOT/APPHOST/Contoso");
var traceFailedRequestsCollection = traceFailedRequestsSection.Collection;

var addElement = traceFailedRequestsCollection.CreateNewElement("add");
addElement.Properties.Item("path").Value = "*.aspx";
var traceAreasCollection = addElement.ChildElements.Item("traceAreas").Collection;

var addElement1 = traceAreasCollection.CreateNewElement("add");
addElement1.Properties.Item("provider").Value = "ASPNET";
addElement1.Properties.Item("areas").Value = "Infrastructure,Module,Page,AppServices";
addElement1.Properties.Item("verbosity").Value = "Verbose";
traceAreasCollection.AddElement(addElement1);

var failureDefinitionsElement = addElement.ChildElements.Item("failureDefinitions");
failureDefinitionsElement.Properties.Item("statusCodes").Value = "500";
traceFailedRequestsCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set traceFailedRequestsSection = adminManager.GetAdminSection("system.webServer/tracing/traceFailedRequests", "MACHINE/WEBROOT/APPHOST/Contoso")
Set traceFailedRequestsCollection = traceFailedRequestsSection.Collection

Set addElement = traceFailedRequestsCollection.CreateNewElement("add")
addElement.Properties.Item("path").Value = "*.aspx"
Set traceAreasCollection = addElement.ChildElements.Item("traceAreas").Collection

Set addElement1 = traceAreasCollection.CreateNewElement("add")
addElement1.Properties.Item("provider").Value = "ASPNET"
addElement1.Properties.Item("areas").Value = "Infrastructure,Module,Page,AppServices"
addElement1.Properties.Item("verbosity").Value = "Verbose"
traceAreasCollection.AddElement addElement1

Set failureDefinitionsElement = addElement.ChildElements.Item("failureDefinitions")
failureDefinitionsElement.Properties.Item("statusCodes").Value = "500"
traceFailedRequestsCollection.AddElement addElement

adminManager.CommitChanges()