キャッシュ プロファイル: <profiles>

概要

<caching> 要素の <profiles> 要素は、出力キャッシュに使うプロファイルを指定します。

互換性

バージョン メモ
IIS 10.0 <profiles> 要素は、IIS 10.0 では変更されませんでした。
IIS 8.5 <profiles> 要素は、IIS 8.5 では変更されませんでした。
IIS 8.0 <profiles> 要素は、IIS 8.0 では変更されませんでした。
IIS 7.5 <profiles> 要素は、IIS 7.5 では変更されませんでした。
IIS 7.0 <caching> 要素の <profiles> 要素が IIS 7.0 で導入されました。
IIS 6.0 該当なし

段取り

<caching> 要素の <profiles> 要素は、IIS 7 の既定のインストールに含まれています。

操作方法

ページ出力キャッシュを構成する方法

  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. [ホーム] ウィンドウで、[出力キャッシュ] までスクロールして、[出力キャッシュ] をダブルクリックします。
    [I I S マネージャー] ウィンドウのスクリーンショット。メイン ウィンドウで [出力キャッシュ] が選択されています。

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

  5. [キャッシュ規則の追加] ダイアログ ボックスで、キャッシュするファイル名拡張子を [ファイル名拡張子] ボックスに入力してから、[ユーザー モード キャッシュ] オプションと [カーネル モード キャッシュ] オプションのどちらか一方または両方を選びます。

  6. キャッシュに使うオプションを選んでから、[OK] をクリックします。
    [キャッシュ ルールの追加] ダイアログのスクリーンショット。ユーザー モードキャッシュとカーネルモードキャッシュがチェックされます。

構成

属性

なし。

子要素

要素 説明
add 省略可能な要素です。

出力キャッシュ プロファイルのコレクションに出力キャッシュ プロファイルを追加します。
clear 省略可能な要素です。

出力キャッシュ プロファイル コレクションから出力キャッシュ プロファイルへの参照をすべて削除します。
remove 省略可能な要素です。

出力キャッシュ プロファイル コレクションから出力キャッシュ プロファイルへの参照を削除します。

構成サンプル

次の構成例では、ユーザー モード キャッシュとカーネル モード キャッシュを有効にします。IIS 7.0 ではどちらも既定で有効になります。 また、<profiles> 要素に含まれる <add> 要素を使って、ファイル名拡張子が .asp であるファイルの出力キャッシュを有効にしています。 また、policy 属性を使って、変更されるまでページを出力キャッシュしています。これは、カーネル キャッシュで kernelCachePolicy 属性を使用する場合と同じです。

<configuration>
   <system.webServer>
      <caching enabled="true" enableKernelCache="true">
         <profiles>
            <add extension=".asp" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
         </profiles>
      </caching>
   </system.webServer>
</configuration>

次のコード例では、最大出力キャッシュ サイズを 1 GB に設定し、出力キャッシュに格納できる応答の最大サイズを 512 KB に設定しています。

<configuration>
   <system.webServer>
      <caching enabled="true" enableKernelCache="true" maxCacheSize="1000" maxResponseSize="512000"/>
   </system.webServer>
</configuration>

サンプル コード

次の例では、ファイル名拡張子が .asp であるファイルのページ出力キャッシュを構成し、ASP ファイルが変更されるまでユーザー モードとカーネル モードでキャッシュするように IIS を構成しています。

AppCmd.exe

appcmd.exe set config -section:system.webServer/caching /+"profiles.[extension='asp',policy='CacheUntilChange',kernelCachePolicy='CacheUntilChange']" /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 cachingSection = config.GetSection("system.webServer/caching");
         ConfigurationElementCollection profilesCollection = cachingSection.GetCollection("profiles");

         ConfigurationElement addElement = profilesCollection.CreateElement("add");
         addElement["extension"] = @"asp";
         addElement["policy"] = @"CacheUntilChange";
         addElement["kernelCachePolicy"] = @"CacheUntilChange";
         profilesCollection.AddAt(0, 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 cachingSection As ConfigurationSection = config.GetSection("system.webServer/caching")
      Dim profilesCollection As ConfigurationElementCollection = cachingSection.GetCollection("profiles")
      Dim addElement As ConfigurationElement = profilesCollection.CreateElement("add")
      addElement("extension") = "asp"
      addElement("policy") = "CacheUntilChange"
      addElement("kernelCachePolicy") = "CacheUntilChange"
      profilesCollection.AddAt(0, addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var cachingSection = adminManager.GetAdminSection("system.webServer/caching", "MACHINE/WEBROOT/APPHOST");
var profilesCollection = cachingSection.ChildElements.Item("profiles").Collection;

var addElement = profilesCollection.CreateNewElement("add");
addElement.Properties.Item("extension").Value = "asp";
addElement.Properties.Item("policy").Value = "CacheUntilChange";
addElement.Properties.Item("kernelCachePolicy").Value = "CacheUntilChange";
profilesCollection.AddElement(addElement, 0);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set cachingSection = adminManager.GetAdminSection("system.webServer/caching", "MACHINE/WEBROOT/APPHOST")
Set profilesCollection = cachingSection.ChildElements.Item("profiles").Collection

Set addElement = profilesCollection.CreateNewElement("add")
addElement.Properties.Item("extension").Value = "asp"
addElement.Properties.Item("policy").Value = "CacheUntilChange"
addElement.Properties.Item("kernelCachePolicy").Value = "CacheUntilChange"
profilesCollection.AddElement addElement, 0

adminManager.CommitChanges()