次の方法で共有


フィルター: <filter>

概要

<isapiFilters> コレクションの <filter> 要素は、クライアントの要求データまたはサーバーの応答データを処理するための 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 <isapiFilters> コレクションの <filter> 要素は IIS 7.0 で導入されました。
IIS 6.0 <isapiFilters> コレクションは、IIS 6.0 の FilterEnableCacheFilterPath メタベース プロパティを置き換えます。

段取り

<isapiFilters> 要素を使うには、IIS 7 以降のサーバーに ISAPI フィルター モジュールをインストールする必要があります。 そのためには、次のステップに従います。

Windows Server 2012 または Windows Server 2012 R2

  1. タスク バーで [サーバー マネージャー]をクリックします。
  2. [サーバー マネージャー] で、[管理] メニューを選択し、[役割と機能の追加] を選択します。
  3. [役割と機能の追加] ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[次へ] をクリックします。 対象サーバーを選択し、[次へ] をクリックします。
  4. [サーバーの役割] ページで、[Web サーバー (IIS)][Web サーバー][アプリケーション開発] の順に展開して、[ISAPI フィルター] を選びます。 次へ をクリックします。
    [I S A P I フィルター] が選択された状態で展開された [Web サーバーとアプリケーション開発機能] ノードのスクリーンショット。 .
  5. [機能の選択] ページで、[次へ] をクリックします。
  6. [インストール オプションの確認] ページで、[インストール] をクリックします。
  7. [結果] ページで、 [閉じる]をクリックします。

Windows 8 または Windows 8.1

  1. [スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。
  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。
  3. [インターネット インフォメーション サービス][World Wide Web サービス][アプリケーション開発機能] の順に展開して、[ISAPI フィルター] を選択します。
    スクリーンショットには、[I S A P I フィルター] が選択された状態で展開された [World Wide Web サービスとアプリケーション開発機能] ウィンドウが表示されます。
  4. OK をクリックします。
  5. 閉じるをクリックします。

Windows Server 2008 または Windows Server 2008 R2

  1. タスク バーで [スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャ] をクリックします。
  2. [サーバー マネージャ] 階層ウィンドウで [役割] を展開し、[Web サーバー (IIS)] をクリックします。
  3. [Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] をクリックします。
  4. 役割サービスの追加ウィザード[役割サービスの選択] ページで、[ISAPI フィルター] を選択し、[次へ] をクリックします。
    [Windows の機能をオンまたはオフにする] ページで展開された [アプリケーション開発機能] ノードのスクリーンショット。[I S A P I フィルター] が選択されています。
  5. [インストール オプションの確認] ページで、[インストール] をクリックします。
  6. [結果] ページで、 [閉じる]をクリックします。

Windows Vista または Windows 7

  1. タスク バーで、[スタート][コントロール パネル] の順にクリックします。
  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。
  3. [Windows 機能] ダイアログ ボックスで、[インターネット インフォメーション サービス][World Wide Web サービス][アプリケーション開発機能] の順に展開します。
    スクリーンショットは、[I S A P I フィルター] が選択された状態で展開された [World Wide Web Services とアプリケーション開発機能] ウィンドウを示しています。
  4. [ISAPI フィルター] を選んで、[OK] をクリックします。

操作方法

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 フィルター] をダブルクリックします。
    [I S A P I フィルター] が選択されていることを示す [ホーム] ウィンドウのスクリーンショット。

  4. [操作] ウィンドウで、[追加] をクリックします。

  5. [ISAPI フィルターの追加] ダイアログ ボックスの [フィルター名] テキスト ボックスに、ISAPI フィルターのフレンドリ名を入力します。

  6. [実行可能ファイル] ボックスに、ISAPI フィルター ファイルの場所のファイル システム パスを入力するか、省略記号 ([...]) をクリックして ISAPI フィルター ファイルを含むフォルダーに移動して、[OK] をクリックします。
    [実行可能ファイル] ボックスと [フィルター名] ボックスが表示されている [Add I S A P I Filter]\(I S A P I フィルターの追加\) ダイアログ ボックスのスクリーンショット。

構成

属性

属性 説明
enableCache 省略可能な Boolean 属性です。

フィルター処理されたサーバー応答に対して HTTP.sys キャッシュを有効にするか (true) または無効にするか (false) を指定します。

既定値は false です。
enabled 省略可能な Boolean 属性です。

インストールされたフィルターを有効にするか (true) または無効にするか (false) を指定します。

既定値は true です。
name 必須の文字列属性です。

ISAPI フィルターの一意の名前を指定します。
path 必須の文字列属性です。

ISAPI フィルターの .dll ファイルの完全な物理パスを指定します。
preCondition 省略可能な文字列属性。

ISAPI フィルターを実行する条件を指定します。

preCondition 属性には、次の使用可能な値のうち 1 つ以上を指定できます。 複数の値を指定する場合は、値をコンマ (,) で区切ります。
Value 説明
bitness32 ISAPI フィルターが 32 ビットの .dll ファイルの場合は、bitness32 値を指定します。IIS は、64 ビット オペレーティング システム上で WOW64 モード (32 ビット シミュレーション) で実行されているワーカー プロセスに対してのみ、フィルターを読み込む必要があります。
bitness64 ISAPI フィルターが 64 ビットの .dll ファイルの場合は、bitness64 値を指定します。IIS は、64 ビット モードで実行されているワーカー プロセスに対してのみ、フィルターを読み込む必要があります。
integratedMode ISAPI フィルターが統合要求処理パイプラインを使ってマネージド コンテンツの要求を処理する必要がある場合は、値 integratedMode を指定します。
ISAPIMode ISAPI フィルターが ASP.NET ISAPI 拡張機能 (Aspnet_isapi.dll) を使ってマネージド コンテンツの要求を処理する必要がある場合は、値 ISAPIMode を指定します。
runtimeVersionv1.1 ISAPI フィルターが .NET Framework バージョン 1.1 を使うように構成されているアプリケーション プールに対してのみ読み込まれる必要がある場合は、値 runtimeVersionv1.1 を指定します。
runtimeVersionv2.0 ISAPI フィルターが .NET Framework バージョン 2.0 を使うように構成されているアプリケーション プールに対してのみ読み込まれる必要がある場合は、値 runtimeVersionv2.0 を指定します。

子要素

なし。

構成サンプル

次の構成例では、SalesQueryIsapi という名前の ISAPI フィルターを Web サイトまたはアプリケーションに追加します。 サンプルでは、nameenabled 属性を使って、ISAPI フィルターの名前を指定し、有効にしています。 また、enableCache 属性を使って HTTP.sys キャッシュを無効にし、path 属性を使って ISAPI DLL の場所を指定しています。

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

サンプル コード

次の例では、サーバー上で SalesQueryIsapi という名前の ISAPI フィルターを構成します。 各例では、name プロパティを使って ISAPI フィルターの名前を指定し、enableCache プロパティを使って HTTP.sys キャッシュを無効にし、path プロパティを使って ISAPI DLL の場所を指定しています。

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

Note

AppCmd.exe を使用してこれらの設定を構成するときは、commit パラメーターを必ず 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()