キャッシュ プロファイル: <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 の既定のインストールに含まれています。
操作方法
ページ出力キャッシュを構成する方法
インターネット インフォメーション サービス (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) マネージャー] をダブルクリックします。
[接続] ウィンドウで、ページ出力キャッシュを構成する接続、サイト、アプリケーション、またはディレクトリに移動します。
[ホーム] ウィンドウで、[出力キャッシュ] までスクロールして、[出力キャッシュ] をダブルクリックします。
[操作] ウィンドウで、[追加] をクリックします。
[キャッシュ規則の追加] ダイアログ ボックスで、キャッシュするファイル名拡張子を [ファイル名拡張子] ボックスに入力してから、[ユーザー モード キャッシュ] オプションと [カーネル モード キャッシュ] オプションのどちらか一方または両方を選びます。
キャッシュに使うオプションを選んでから、[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()