Фильтры <ISAPI isapiFilters>

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

Элемент <isapiFilters> позволяет управлять фильтрами ISAPI на сервере служб IIS 7. Вы можете добавить фильтр ISAPI, если хотите расширить функциональные возможности веб-сервера. Например, у вас может быть фильтр ISAPI, который собирает сведения о HTTP-запросах и сохраняет их в базе данных.

Примечание

Хотя СЛУЖБЫ IIS 7 поддерживают фильтры ISAPI, корпорация Майкрософт рекомендует расширить функциональные возможности веб-сервера с помощью модулей, а не фильтров ISAPI.

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

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

Версия Примечания
IIS 10.0 Элемент <isapiFilters> не был изменен в IIS 10.0.
IIS 8,5 Элемент <isapiFilters> не был изменен в IIS 8.5.
IIS 8,0 Элемент <isapiFilters> не был изменен в IIS 8.0.
IIS 7,5 Элемент <isapiFilters> не был изменен в IIS 7.5.
IIS 7.0 Элемент <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. Щелкните Далее.
    Снимок экрана: фильтры IP-адресов, выбранные в интерфейсе Windows Server 2012. .
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

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

Windows Server 2008 или Windows Server 2008 R2

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

Windows Vista или Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. В диалоговом окне Компоненты Windows разверните узел Службы IIS, Затем — World Wide Web Services и Компоненты разработки приложений.
    Снимок экрана: фильтры IP-адресов, выбранные в интерфейсе Windows Vista или Windows 7.
  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.
    Снимок экрана: фильтры IP-адреса, выбранные на панели

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

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

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

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

Вы можете добавить фильтр ISAPI на уровне сервера и сайта. При добавлении фильтра ISAPI на уровне сервера фильтр перехватывает все запросы, выполненные к серверу. При добавлении фильтра ISAPI на определенный сайт фильтр перехватывает все запросы, сделанные к этому сайту.

Элемент можно настроить <isapiFilters> на уровне сервера в файле ApplicationHost.config или на уровне сайта в соответствующем Web.config файле.

Атрибуты

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

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

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

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

Добавляет фильтр ISAPI в коллекцию фильтров ISAPI.
remove Необязательный элемент.

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

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

В следующем примере конфигурации к веб-сайту или приложению добавляется фильтр 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()