ASP キャッシュ: <cache>

概要

<asp> 要素の <cache> 要素は、Active Server Pages (ASP) のパフォーマンス動作を制御できる、インターネット インフォメーション サービス (IIS) 7 の次の ASP キャッシュ設定を指定します。

  • diskTemplateCacheDirectory 属性には、メモリ内キャッシュのオーバーフロー後に、ASP がコンパイル済み ASP テンプレートをディスクに格納するために使うディレクトリの名前が含まれます。 既定のディレクトリを変更する場合は、ASP を実行しているプロセスの ID に新しいディレクトリへのフル コントロール権限が割り当てられていることを確認する必要があります。
  • enableTypelibCache 属性は、タイプ ライブラリをサーバーにキャッシュするかどうかを指定します。
  • maxDiskTemplateCacheFiles 属性の値は、格納できるコンパイル済み ASP テンプレートの最大数を指定します。 (コンパイル済みテンプレートを格納するディレクトリは、diskTemplateCacheDirectory 属性で構成されます。)
  • scriptFileCacheSize 属性は、キャッシュするプリコンパイル済みスクリプト ファイルの数を指定します。 0 に設定すると、スクリプト ファイルはキャッシュされません。 4,294,967,295 に設定すると、要求されたすべてのスクリプト ファイルがキャッシュされます。 この属性は、使用可能なメモリの量とスクリプト ファイルのトラフィックの量に応じて、パフォーマンスを調整するために使われます。
  • scriptEngineCacheMax 属性は、ASP ページがメモリ内にキャッシュしておくスクリプト エンジンの最大数を指定します。

互換性

バージョン メモ
IIS 10.0 <cache> 要素は、IIS 10.0 では変更されませんでした。
IIS 8.5 <cache> 要素は、IIS 8.5 では変更されませんでした。
IIS 8.0 <cache> 要素は、IIS 8.0 では変更されませんでした。
IIS 7.5 <cache> 要素は、IIS 7.5 では変更されませんでした。
IIS 7.0 <asp> 要素の <cache> 要素が IIS 7.0 で導入されました。
IIS 6.0 <cache> 要素は、次の IIS 6.0 メタベース プロパティを置き換えます。
  • AspDiskTemplateCacheDirectory
  • AspEnableTypelibCache
  • AspMaxDiskTemplateCacheFiles
  • AspScriptEngineCacheMax
  • AspScriptFileCacheSize

段取り

Web サーバーで ASP アプリケーションをサポートおよび構成するには、ASP モジュールをインストールする必要があります。 ASP モジュールをインストールするには、次の手順のようにします。

Windows Server 2012 または Windows Server 2012 R2

  1. タスク バーで [サーバー マネージャー]をクリックします。
  2. [サーバー マネージャー] で、[管理] メニューを選択し、[役割と機能の追加] を選択します。
  3. [役割と機能の追加] ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[次へ] をクリックします。 対象サーバーを選択し、[次へ] をクリックします。
  4. [サーバーの役割] ページで、[Web サーバー (IIS)][Web サーバー][アプリケーション開発] の順に展開して、[ASP] を選びます。
    Windows Server 2012 で選択された S P を示すスクリーンショット。
  5. [ASP に必要な機能を追加しますか?] ダイアログ ボックスが表示されたら、[機能の追加] をクリックします。 (このページは、ISAPI 拡張機能の役割サービスをサーバーにまだインストールしていない場合にのみ表示されます)。
  6. [サーバーの役割] ページで、[次へ] をクリックします。
  7. [機能の選択] ページで、[次へ] をクリックします。
  8. [インストール オプションの確認] ページで、[インストール] をクリックします。
  9. [結果] ページで、 [閉じる]をクリックします。

Windows 8 または Windows 8.1

  1. [スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。

  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。

  3. [インターネット インフォメーション サービス][World Wide Web サービス][アプリケーション開発機能] の順に展開して、[ASP] を選択します。
    Windows 8 で選択された S P を示すスクリーンショット。

    Note

    ISAPI 拡張機能の役割がまだインストールされていない場合、それが選択されます。

  4. OK をクリックします。

  5. 閉じるをクリックします。

Windows Server 2008 または Windows Server 2008 R2

  1. タスク バーで [スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャ] をクリックします。
  2. [サーバー マネージャ] 階層ウィンドウで [役割] を展開し、[Web サーバー (IIS)] をクリックします。
  3. [Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] をクリックします。
  4. 役割サービスの追加ウィザード[役割サービスの選択] ページで、[ASP] を選択します。
    [役割サービスの追加] ダイアログ ボックスの [役割サービスの選択] ページを示すスクリーンショット。アプリケーション開発ノードの下で S P が選択されます。
  5. [ASP で必要な役割サービスの追加] ダイアログ ボックスが表示されたら、[必要な役割サービスの追加] をクリックします。 (このページは、ISAPI 拡張機能の役割サービスをサーバーにまだインストールしていない場合にのみ表示されます)。
    [ロール サービスの追加] メッセージ ボックスを示すスクリーンショット。
  6. [役割サービスの選択] ページで、[次へ] を選択します。
  7. [インストール オプションの確認] ページで、[インストール] をクリックします。
  8. [結果] ページで、 [閉じる]をクリックします。

Windows Vista または Windows 7

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

操作方法

サーバーの ASP キャッシュ設定を構成する方法

  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. サーバーの [ホーム] ウィンドウで、[ASP] をダブルクリックします。
    [サーバー ホーム] ウィンドウを示すスクリーンショット。S P が選択されています。

  4. [ASP] ウィンドウで、[キャッシュのプロパティ] セクションを展開し、目的の設定を構成してから、[操作] ウィンドウで [適用] クリックします。
    [A S P] ウィンドウを示すスクリーンショット。キャッシュ プロパティが選択され、展開されます。

構成

属性

属性 説明
diskTemplateCacheDirectory 省略可能な文字列属性。

メモリ内キャッシュのオーバーフロー時に ASP がコンパイル済み ASP テンプレートを格納するディレクトリの名前を指定します。

既定値は %SystemDrive%\inetpub\temp\ASP Compiled Templates です。
enableTypelibCache 省略可能な Boolean 属性です。

タイプ ライブラリをキャッシュするかどうかを指定します。

既定値は true です。
maxDiskTemplateCacheFiles 省略可能な uint 属性。

格納できるコンパイル済み ASP テンプレートの最大数を指定します。 この値は、0 から 2147483647 の範囲の整数です。

既定値は 2000 です。
scriptEngineCacheMax 省略可能な uint 属性。

ASP ページがメモリ内にキャッシュしておくスクリプト エンジンの最大数を指定します。 この値は、0 から 2147483647 の範囲の整数です。

既定値は 250 です。
scriptFileCacheSize 省略可能な uint 属性。

キャッシュするプリコンパイル済みスクリプト ファイルの数を指定します。 0 に設定すると、スクリプト ファイルはキャッシュされません。 4,294,967,295 に設定すると、要求されたすべてのスクリプト ファイルがキャッシュされます。 この属性は、使用可能なメモリの量とスクリプト ファイルのトラフィックの量に応じて、パフォーマンスを調整するために使われます。

既定値は 500 です。

子要素

なし。

構成サンプル

次の構成サンプルでは、ASP テンプレート キャッシュのディレクトリ、格納できるコンパイル済み ASP テンプレートの最大数として 400、キャッシュするプリコンパイル済みスクリプト ファイルの数として 1000、ASP ページがメモリにキャッシュしたままにするスクリプト エンジンの最大数として 500 を、それぞれ設定します。

<configuration>
   <system.webServer>
      <asp>
         <cache maxDiskTemplateCacheFiles="4000"
            diskTemplateCacheDirectory="%SystemDrive%\inetpub\temp\ASP Compiled Templates"
            scriptFileCacheSize="1000"
            scriptEngineCacheMax="500"
         />
      </asp>
   </system.webServer>
</configuration>

サンプル コード

次のコード サンプルでは、ASP テンプレート キャッシュのディレクトリ、格納できるコンパイル済み ASP テンプレートの最大数として 400、キャッシュするプリコンパイル済みスクリプト ファイルの数として 1000、ASP ページがメモリにキャッシュしたままにするスクリプト エンジンの最大数として 500 を、それぞれ設定します。

AppCmd.exe

appcmd.exe set config -section:system.webServer/asp /cache.diskTemplateCacheDirectory:"%SystemDrive%\inetpub\temp\ASP Compiled Templates" /commit:apphost
appcmd.exe set config -section:system.webServer/asp /cache.maxDiskTemplateCacheFiles:"4000" /commit:apphost
appcmd.exe set config -section:system.webServer/asp /cache.scriptFileCacheSize:"1000" /commit:apphost
appcmd.exe set config -section:system.webServer/asp /cache.scriptEngineCacheMax:"500" /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 aspSection = config.GetSection("system.webServer/asp");

         ConfigurationElement cacheElement = aspSection.GetChildElement("cache");
         cacheElement["diskTemplateCacheDirectory"] = @"%SystemDrive%\inetpub\temp\ASP Compiled Templates";
         cacheElement["maxDiskTemplateCacheFiles"] = 4000;
         cacheElement["scriptFileCacheSize"] = 1000;
         cacheElement["scriptEngineCacheMax"] = 500;

         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 aspSection As ConfigurationSection = config.GetSection("system.webServer/asp")

      Dim cacheElement As ConfigurationElement = aspSection.GetChildElement("cache")
      cacheElement("diskTemplateCacheDirectory") = "%SystemDrive%\inetpub\temp\ASP Compiled Templates"
      cacheElement("maxDiskTemplateCacheFiles") = 4000
      cacheElement("scriptFileCacheSize") = 1000
      cacheElement("scriptEngineCacheMax") = 500

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST");

var cacheElement = aspSection.ChildElements.Item("cache");
cacheElement.Properties.Item("diskTemplateCacheDirectory").Value = "%SystemDrive%\\inetpub\\temp\\ASP Compiled Templates";
cacheElement.Properties.Item("maxDiskTemplateCacheFiles").Value = 4000;
cacheElement.Properties.Item("scriptFileCacheSize").Value = 1000;
cacheElement.Properties.Item("scriptEngineCacheMax").Value = 500;

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST")

Set cacheElement = aspSection.ChildElements.Item("cache")
cacheElement.Properties.Item("diskTemplateCacheDirectory").Value = "%SystemDrive%\inetpub\temp\ASP Compiled Templates"
cacheElement.Properties.Item("maxDiskTemplateCacheFiles").Value = 4000
cacheElement.Properties.Item("scriptFileCacheSize").Value = 1000
cacheElement.Properties.Item("scriptEngineCacheMax").Value = 500

adminManager.CommitChanges()