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

  • 概要
  • 互換性
  • セットアップ
  • 方法
  • 構成
  • サンプル コード

※本ページに挿入されている画像をクリックすると、画像全体が別ウィンドウで表示されます。

概要

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

互換性

  IIS 7.0 IIS 6.0
説明 <caching><profiles> は IIS 7.0 で新たに導入された要素です。 なし

セットアップ

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

方法

ページ出力キャッシュの構成方法

  1. タスク バーの [スタート] ボタンをクリックして、[管理ツール] をポイントし、[インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。

  2. [接続] ウィンドウで、ページ出力キャッシュを構成する接続、サイト、アプリケーション、またはディレクトリに移動します。

  3. [ホーム] ウィンドウで、[出力キャッシュ] までスクロールして [出力キャッシュ] をダブルクリックします。

    拡大

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

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

  6. キャッシュで使用するオプションを選択して、[OK] をクリックします。

    拡大

構成

属性

なし。

子要素

要素 説明
add オプションの要素。

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

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

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

構成サンプル

次の構成例では、ユーザー モード キャッシュとカーネル モード キャッシュを有効にします。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

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()