ASP キャッシュ <cache>

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

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

概要

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

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

互換性

  IIS 7.0 IIS 6.0
注意 <asp><cache> は IIS 7.0 で新たに導入された要素です。 <cache> 要素は、IIS 6.0 の次のメタベース プロパティに代わるものです。AspDiskTemplateCacheDirectory
AspEnableTypelibCache
AspMaxDiskTemplateCacheFiles
AspScriptEngineCacheMax
AspScriptFileCacheSize

セットアップ

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

Windows Server 2008

  1. タスク バーで [スタート] をクリックし、[管理ツール] をポイントして [サーバー マネージャー] をクリックします。

  2. [サーバー マネージャー] のツリー表示で、[役割] を展開して [Web サーバー (IIS)] をクリックします。

  3. [Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールして [役割サービスの追加] をクリックします。

  4. 役割サービスの追加ウィザードの [役割サービスの選択] ページで、[ASP] を選択します。

    拡大

  5. [ASP に必要な役割サービスを追加しますか] ダイアログ ボックスが表示されたら、[必要な役割サービスを追加] をクリックします (このページは、ISAPI 拡張役割サービスをサーバーにまだインストールしていない場合のみ表示されます)。

    拡大

  6. [役割サービスの選択] ページで [次へ] をクリックします。

  7. [インストール オプションの確認] ページで [インストール] をクリックします。

  8. [結果] ページで [閉じる] をクリックします。

Windows Vista

  1. タスク バーで [スタート] をクリックし、[コントロール パネル] をクリックします。

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

  3. [インターネット インフォメーション サービス][World Wide Web サービス][アプリケーション開発機能] の順に展開します。

  4. [ASP] を選択して、[OK] をクリックします。

    拡大

方法

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

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

  2. [接続] ウィンドウでサーバーの名前を強調表示します。

  3. サーバーの [ホーム] ウィンドウで [ASP] をダブルクリックします。

    拡大

  4. [ASP] ウィンドウで [キャッシュ プロパティ] セクションを展開し、必要な設定を構成して [操作] ウィンドウで [適用] をクリックします。

    拡大

構成

属性

属性 説明
diskTemplateCacheDirectory オプションの string 属性。

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

既定値は %SystemDrive%\inetpub\temp\ASP Compiled Templates です。
enableTypelibCache オプションの Boolean 属性。

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

既定値は true です。
maxDiskTemplateCacheFiles オプションの unit 属性。

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

既定値は 2000 です。
scriptEngineCacheMax オプションの unit 属性。

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

既定値は 250 です。
scriptFileCacheSize オプションの unit 属性。

キャッシュするプリコンパイル済みスクリプト ファイル数を指定します。0 に設定すると、スクリプト ファイルはキャッシュされません。4294967295 に設定すると、要求されたすべてのスクリプト ファイルがキャッシュされます。この属性は、利用できるメモリ量およびスクリプト ファイルの通信量に応じてパフォーマンスを調整するのに使用されます。

既定値は 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

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