Поделиться через


Failure Definitions failureDefinitions (Определения сбоев)<>

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

Элемент <failureDefinitions> определяет условия, в которых выполняется трассировка запросов. Условие сбоя состоит из кодов состояния, интервала времени или сочетания этих кодов. Кроме того, можно указать уровень детализации для трассировки.

Примечание

Добавление дополнительных параметров детализации настроит IIS на возврат дополнительных сведений в журналах трассировки, но подробные журналы могут стать довольно большими. Если размер файлов журнала превышает максимальный размер файла, определенный атрибутом <traceFailedRequestsLogging>maxLogFileSizeKB элемента , файлы журнала будут усечены при максимальном размере, и вам потребуется увеличить размер файла, указанный в этом атрибуте.

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

Версия Примечания
IIS 10.0 Атрибут traceAllAfterTimeout был добавлен в <failureDefinitions> элемент в IIS 10.0.
IIS 8,5 Элемент <failureDefinitions> не был изменен в IIS 8.5.
IIS 8,0 Элемент <failureDefinitions> не был изменен в IIS 8.0.
IIS 7,5 Элемент <failureDefinitions> не был изменен в IIS 7.5.
IIS 7.0 Элемент <failureDefinitions> появился в 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. В области Действия щелкните Трассировка неудачных запросов...
    Изображение домашней страницы веб-сайта по умолчанию с консолью диспетчера 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. На панели Главная дважды щелкните Правила трассировки неудачных запросов.
    Снимок экрана: панель

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

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

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

  7. На странице Выбор поставщиков трассировки выберите один или несколько поставщиков трассировки в разделе Поставщики.
    Изображение страницы

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

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

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

Параметр Configuration

Атрибуты

Атрибут Описание
statusCodes Необязательный строковый атрибут.

Указывает коды состояния, которые требуется отследить. Вы можете ввести несколько кодов состояния в этом списке, используя запятые для разделения каждого кода. Вы также можете уточнить коды состояния с помощью кодов вложенных состояний, таких как "404.2, 500", или диапазона кодов вложенных состояний, таких как "400-599". Если не указать коды подсостояния, будут отслеживаться все коды подсостояния для заданного кода состояния. Коды состояния должны быть от 100 до 999, а коды подсостояния — от 1 до 999.
timeTaken Необязательный атрибут timeSpan.

Указывает максимальное время, которое запрос может потратить на обработку, прежде чем он будет помечен как неудачный, а затем будет отследен.

Значение по умолчанию — 00:00:00.
traceAllAfterTimeout Необязательный атрибут bool.

true Значение , если СЛУЖБЫ IIS должны продолжать трассировку всего запроса по истечении времени ожидания; в противном случае , false если службам IIS следует усечь трассировку при истечении времени ожидания.

Значение по умолчанию — false.
verbosity Необязательный атрибут перечисления.

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

Атрибут verbosity может быть одним из следующих возможных значений.

Значение по умолчанию — Ignore.
Значение Описание
Ignore Не предоставляет сведений о действии запроса.

Числовое значение равно 0.
CriticalError Предоставляет сведения о действиях, которые могут привести к завершению процесса или к завершению процесса.

Числовое значение равно 1.
Error Предоставляет сведения о компонентах, которые испытывают ошибку и не могут продолжать обрабатывать запросы. Эти ошибки обычно указывают на проблему на стороне сервера.

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

Числовое значение равно 3.

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

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

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

В следующем примере конфигурации трассировка настраивается на уровне сервера в файле ApplicationHost.config. Он задает трассировку для всех ASPX-файлов, использует <traceAreas> элемент для задания поставщика ASPNET и трассировки для всех ASP.NET областей, таких как Инфраструктура, Модуль, Страница и AppServices. В примере также используется атрибут verbosity для установки предупреждения для объема сведений, возвращаемых в файл трассировки. Наконец, в примере элемент используется <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()