Фильтр фильтра <>

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

Элемент <filter><isapiFilters> коллекции настраивает фильтр ISAPI для обработки данных запроса клиента или ответов сервера.

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

Версия Примечания
IIS 10.0 Элемент <filter> не был изменен в IIS 10.0.
IIS 8,5 Элемент <filter> не был изменен в IIS 8.5.
IIS 8,0 Элемент <filter> не был изменен в IIS 8.0.
IIS 7,5 Элемент <filter> не был изменен в IIS 7.5.
IIS 7.0 Элемент <filter> коллекции появился <isapiFilters> в IIS 7.0.
IIS 6,0 Коллекция <isapiFilters> заменяет свойства метабазы FilterEnableCache и FilterPath IIS 6.0.

Настройка

Чтобы использовать <isapiFilters> элемент , необходимо установить модуль фильтры ISAPI на сервере IIS 7 и более поздних версий. Для этого выполните следующие действия.

Windows Server 2012 или Windows Server 2012 R2

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

Windows 8 или Windows 8.1

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

Windows Server 2008 или Windows Server 2008 R2

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

Windows Vista или Windows 7

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

Инструкции

Добавление фильтра ISAPI

  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. В области Подключения перейдите к подключению или сайту, для которого требуется настроить фильтры ISAPI.

  3. На панели Главная дважды щелкните фильтры ISAPI.
    Снимок экрана: панель

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

  5. В текстовом поле Имя фильтра диалогового окна Добавление фильтра ISAPI введите понятное имя фильтра ISAPI.

  6. В поле Исполняемый файл введите путь к файловой системе расположения файла фильтра ISAPI или нажмите кнопку с многоточием (...), чтобы перейти к папке, содержащей файл фильтра ISAPI, и нажмите кнопку ОК.
    Снимок экрана: диалоговое окно

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

Атрибуты

Атрибут Описание
enableCache Дополнительный логический атрибут.

Указывает, включено ли кэширование HTTP.sys (true) или отключено (false) для отфильтрованных ответов сервера.

Значение по умолчанию — false.
enabled Дополнительный логический атрибут.

Указывает, включен ли установленный фильтр (true) или отключен (false).

Значение по умолчанию — true.
name Обязательный строковый атрибут.

Указывает уникальное имя фильтра ISAPI.
path Обязательный строковый атрибут.

Указывает полный физический путь к файлу фильтра ISAPI .dll.
preCondition Необязательный строковый атрибут.

Указывает условия, при которых будет выполняться фильтр ISAPI.

Атрибут preCondition может быть одним или несколькими из следующих возможных значений. Если указано несколько значений, разделите значения запятой (,).
Значение Описание
bitness32 Укажите значение разрядности32 , если фильтр ISAPI является 32-разрядным файлом .dll, а службы IIS должны загружать фильтр только для рабочих процессов, которые выполняются в режиме WOW64 (32-разрядное моделирование) в 64-разрядной операционной системе.
bitness64 Укажите значение разрядности64, если фильтр ISAPI является 64-разрядным файлом .dll, а службы IIS должны загружать фильтр только для рабочих процессов, выполняемых в 64-разрядном режиме.
integratedMode Укажите значение integratedMode , если фильтр ISAPI должен использовать интегрированный конвейер обработки запросов для обработки запросов к управляемому содержимому.
ISAPIMode Укажите значение ISAPIMode , если фильтр ISAPI должен использовать расширение ASP.NET ISAPI, Aspnet_isapi.dll, для обработки запросов на управляемое содержимое.
runtimeVersionv1.1 Укажите значение runtimeVersionv1.1, если фильтр ISAPI должен загружаться только для пулов приложений, настроенных на использование платформа .NET Framework версии 1.1.
runtimeVersionv2.0 Укажите значение runtimeVersionv2.0, если фильтр ISAPI должен загружаться только для пулов приложений, настроенных на использование платформа .NET Framework версии 2.0.

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

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

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

В следующем примере конфигурации к веб-сайту или приложению добавляется фильтр ISAPI с именем SalesQueryIsapi. Пример имен и включает фильтр ISAPI с именем и включенными атрибутами. Он также использует атрибут enableCache для отключения кэширования HTTP.sys и атрибут path для указания расположения библиотеки DLL ISAPI.

<configuration>
   <system.webServer>
      <isapiFilters>
         <filter 
            name="SalesFilter" 
            enabled="true" 
            enableCache="false" 
            path="C:\Inetpub\filters\SalesFilter.dll" />
      </isapiFilters>
   </system.webServer>
</configuration>

Пример кода

В следующих примерах настраивается фильтр ISAPI с именем SalesQueryIsapi на сервере. В каждом примере используется свойство name для указания имени фильтра ISAPI, свойство enableCache для отключения кэширования HTTP.sys и свойство path для указания расположения библиотеки DLL ISAPI.

AppCmd.exe

appcmd.exe set config -section:system.webServer/isapiFilters /+"[name='SalesQueryIsapi',path='c:\Inetpub\www.contoso.com\filters\SalesQueryIsapi.dll',enabled='True',enableCache='True']" /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 isapiFiltersSection = config.GetSection("system.webServer/isapiFilters");
         ConfigurationElementCollection isapiFiltersCollection = isapiFiltersSection.GetCollection();

         ConfigurationElement filterElement = isapiFiltersCollection.CreateElement("filter");
         filterElement["name"] = @"SalesQueryIsapi";
         filterElement["path"] = @"c:\Inetpub\www.contoso.com\filters\SalesQueryIsapi.dll";
         filterElement["enabled"] = true;
         filterElement["enableCache"] = true;
         isapiFiltersCollection.Add(filterElement);

         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 isapiFiltersSection As ConfigurationSection = config.GetSection("system.webServer/isapiFilters")
      Dim isapiFiltersCollection As ConfigurationElementCollection = isapiFiltersSection.GetCollection
      Dim filterElement As ConfigurationElement = isapiFiltersCollection.CreateElement("filter")
      filterElement("name") = "SalesQueryIsapi"
      filterElement("path") = "c:\Inetpub\www.contoso.com\filters\SalesQueryIsapi.dll"
      filterElement("enabled") = True
      filterElement("enableCache") = True
      isapiFiltersCollection.Add(filterElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var isapiFiltersSection = adminManager.GetAdminSection("system.webServer/isapiFilters", "MACHINE/WEBROOT/APPHOST");
var isapiFiltersCollection = isapiFiltersSection.Collection;

var filterElement = isapiFiltersCollection.CreateNewElement("filter");
filterElement.Properties.Item("name").Value = "SalesQueryIsapi";
filterElement.Properties.Item("path").Value = "c:\\Inetpub\\www.contoso.com\\filters\\SalesQueryIsapi.dll";
filterElement.Properties.Item("enabled").Value = true;
filterElement.Properties.Item("enableCache").Value = true;
isapiFiltersCollection.AddElement(filterElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set isapiFiltersSection = adminManager.GetAdminSection("system.webServer/isapiFilters", "MACHINE/WEBROOT/APPHOST")
Set isapiFiltersCollection = isapiFiltersSection.Collection

Set filterElement = isapiFiltersCollection.CreateNewElement("filter")
filterElement.Properties.Item("name").Value = "SalesQueryIsapi"
filterElement.Properties.Item("path").Value = "c:\\Inetpub\\www.contoso.com\\filters\\SalesQueryIsapi.dll"
filterElement.Properties.Item("enabled").Value = True
filterElement.Properties.Item("enableCache").Value = True
isapiFiltersCollection.AddElement filterElement

adminManager.CommitChanges()