Определения поставщика трассировки <traceProviderDefinitions>

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

Элемент <traceProviderDefinitions> позволяет определить коллекцию поставщиков трассировки, доступных на сервере IIS 7. Поставщик трассировки — это компонент приложения или операционной системы, который создает сообщения трассировки или события трассировки. При установке службы ролей трассировки в IIS 7 службы IIS по умолчанию устанавливают поставщик трассировки WWW-сервера, связанный с сервером IIS 7, поставщиком трассировки ASP и поставщиком трассировки расширения ISAPI. При установке ASP.NET 2.0 на сервере IIS 7 автоматически добавляет поставщик трассировки ASPNET в коллекцию определений поставщика трассировки. СЛУЖБЫ IIS определяют каждый поставщик трассировки в <add> элементе в элементе <traceProviderDefinitions> .

Вы можете добавить настраиваемые поставщики трассировки на сервер, добавив <add> элемент, определяющий этот поставщик трассировки. Вы можете включить <remove> элемент в элемент , <traceProviderDefinitions> чтобы удалить один поставщик трассировки, унаследованный из файла конфигурации выше в иерархии конфигурации. Элемент можно использовать для <clear> удаления всех унаследованных поставщиков трассировки.

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

Версия Примечания
IIS 10.0 Элемент <traceProviderDefinitions> не был изменен в IIS 10.0.
IIS 8,5 Элемент <traceProviderDefinitions> не был изменен в IIS 8.5.
IIS 8,0 Элемент <traceProviderDefinitions> не был изменен в IIS 8.0.
IIS 7,5 Элемент <traceProviderDefinitions> не был изменен в IIS 7.5.
IIS 7.0 Элемент <traceProviderDefinitions> появился в 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. Выберите Трассировка и нажмите кнопку ОК.
    Снимок экрана: узел

Инструкции

Отсутствует пользовательский интерфейс для добавления поставщиков трассировки для IIS 7. Примеры программного добавления поставщиков трассировки см. в разделе Примеры кода этого документа.

Конфигурация

Элемент можно настроить <traceProviderDefinitions> на уровне сервера в файле ApplicationHost.config либо на уровне сайта, приложения или каталога в соответствующем файле Web.config.

Атрибуты

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

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

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

Добавляет поставщик трассировки в коллекцию поставщиков трассировки.
clear Необязательный элемент.

Удаляет все ссылки на поставщики трассировки из коллекции поставщиков трассировки.
remove Необязательный элемент.

Удаляет ссылку на поставщик трассировки из коллекции поставщиков трассировки.

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

Следующий элемент по умолчанию <traceProviderDefinitions> настраивается в корневом файле ApplicationHost.config в IIS 7.0.

<traceProviderDefinitions>
   <add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}">
      <areas>
         <clear />
         <add name="Authentication" value="2" />
         <add name="Security" value="4" />
         <add name="Filter" value="8" />
         <add name="StaticFile" value="16" />
         <add name="CGI" value="32" />
         <add name="Compression" value="64" />
         <add name="Cache" value="128" />
         <add name="RequestNotifications" value="256" />
         <add name="Module" value="512" />
      </areas>
   </add>
   <add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}">
      <areas>
         <clear />
      </areas>
   </add>
   <add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}">
      <areas>
         <clear />
      </areas>
   </add>
   <add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}">
      <areas>
         <add name="Infrastructure" value="1" />
         <add name="Module" value="2" />
         <add name="Page" value="4" />
         <add name="AppServices" value="8" />
      </areas>
   </add>
</traceProviderDefinitions>

Пример кода

В следующих примерах в список, определенный в глобальной <traceProviderDefinitions> коллекции, добавляется настраиваемый поставщик трассировки с двумя областями трассировки.

AppCmd.exe

appcmd.exe set config -section:system.webServer/tracing/traceProviderDefinitions /+"[name='MyTraceProvider',guid='{00000000-0000-0000-0000-00000000000}']" /commit:apphost

appcmd.exe set config -section:system.webServer/tracing/traceProviderDefinitions /+"[guid='{00000000-0000-0000-0000-00000000000}'].areas.[name='ProviderAreaOne',value='0']" /commit:apphost

appcmd.exe set config -section:system.webServer/tracing/traceProviderDefinitions /+"[guid='{00000000-0000-0000-0000-00000000000}'].areas.[name='ProviderAreaTwo',value='1']" /commit:apphost

Примечание

При использовании AppCmd.exe для настройки этих параметров для параметра apphostфиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.config.

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.GetApplicationHostConfiguration();
         ConfigurationSection traceProviderDefinitionsSection = config.GetSection("system.webServer/tracing/traceProviderDefinitions");
         ConfigurationElementCollection traceProviderDefinitionsCollection = traceProviderDefinitionsSection.GetCollection();

         ConfigurationElement addElement = traceProviderDefinitionsCollection.CreateElement("add");
         addElement["name"] = @"MyTraceProvider";
         addElement["guid"] = @"{00000000-0000-0000-0000-00000000000}";
         ConfigurationElementCollection areasCollection = addElement.GetCollection("areas");

         ConfigurationElement addElement1 = areasCollection.CreateElement("add");
         addElement1["name"] = @"ProviderAreaOne";
         addElement1["value"] = 0;
         areasCollection.Add(addElement1);

         ConfigurationElement addElement2 = areasCollection.CreateElement("add");
         addElement2["name"] = @"ProviderAreaTwo";
         addElement2["value"] = 1;
         areasCollection.Add(addElement2);

         traceProviderDefinitionsCollection.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.GetApplicationHostConfiguration
      Dim traceProviderDefinitionsSection As ConfigurationSection = config.GetSection("system.webServer/tracing/traceProviderDefinitions")
      Dim traceProviderDefinitionsCollection As ConfigurationElementCollection = traceProviderDefinitionsSection.GetCollection

      Dim addElement As ConfigurationElement = traceProviderDefinitionsCollection.CreateElement("add")
      addElement("name") = "MyTraceProvider"
      addElement("guid") = "{00000000-0000-0000-0000-00000000000}"
      Dim areasCollection As ConfigurationElementCollection = addElement.GetCollection("areas")

      Dim addElement1 As ConfigurationElement = areasCollection.CreateElement("add")
      addElement1("name") = "ProviderAreaOne"
      addElement1("value") = 0
      areasCollection.Add(addElement1)

      Dim addElement2 As ConfigurationElement = areasCollection.CreateElement("add")
      addElement2("name") = "ProviderAreaTwo"
      addElement2("value") = 1
      areasCollection.Add(addElement2)

      traceProviderDefinitionsCollection.Add(addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var traceProviderDefinitionsSection = adminManager.GetAdminSection("system.webServer/tracing/traceProviderDefinitions", "MACHINE/WEBROOT/APPHOST");
var traceProviderDefinitionsCollection = traceProviderDefinitionsSection.Collection;

var addElement = traceProviderDefinitionsCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "MyTraceProvider";
addElement.Properties.Item("guid").Value = "{00000000-0000-0000-0000-00000000000}";
var areasCollection = addElement.ChildElements.Item("areas").Collection;

var addElement1 = areasCollection.CreateNewElement("add");
addElement1.Properties.Item("name").Value = "ProviderAreaOne";
addElement1.Properties.Item("value").Value = 0;
areasCollection.AddElement(addElement1);

var addElement2 = areasCollection.CreateNewElement("add");
addElement2.Properties.Item("name").Value = "ProviderAreaTwo";
addElement2.Properties.Item("value").Value = 1;
areasCollection.AddElement(addElement2);

traceProviderDefinitionsCollection.AddElement(addElement);
adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set traceProviderDefinitionsSection = adminManager.GetAdminSection("system.webServer/tracing/traceProviderDefinitions", "MACHINE/WEBROOT/APPHOST")
Set traceProviderDefinitionsCollection = traceProviderDefinitionsSection.Collection

Set addElement = traceProviderDefinitionsCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "MyTraceProvider"
addElement.Properties.Item("guid").Value = "{00000000-0000-0000-0000-00000000000}"
Set areasCollection = addElement.ChildElements.Item("areas").Collection

Set addElement1 = areasCollection.CreateNewElement("add")
addElement1.Properties.Item("name").Value = "ProviderAreaOne"
addElement1.Properties.Item("value").Value = 0
areasCollection.AddElement addElement1

Set addElement2 = areasCollection.CreateNewElement("add")
addElement2.Properties.Item("name").Value = "ProviderAreaTwo"
addElement2.Properties.Item("value").Value = 1
areasCollection.AddElement addElement2

traceProviderDefinitionsCollection.AddElement addElement
adminManager.CommitChanges()