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 の次のメタベース プロパティに代わるものです。AspDiskTemplateCacheDirectoryAspEnableTypelibCache AspMaxDiskTemplateCacheFiles AspScriptEngineCacheMax AspScriptFileCacheSize |
セットアップ
Web サーバー上の ASP アプリケーションをサポートおよび構成するには、ASP モジュールをインストールする必要があります。ASP モジュールをインストールする手順は次のとおりです。
Windows Server 2008
タスク バーで [スタート] をクリックし、[管理ツール] をポイントして [サーバー マネージャー] をクリックします。
[サーバー マネージャー] のツリー表示で、[役割] を展開して [Web サーバー (IIS)] をクリックします。
[Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールして [役割サービスの追加] をクリックします。
役割サービスの追加ウィザードの [役割サービスの選択] ページで、[ASP] を選択します。
[ASP に必要な役割サービスを追加しますか] ダイアログ ボックスが表示されたら、[必要な役割サービスを追加] をクリックします (このページは、ISAPI 拡張役割サービスをサーバーにまだインストールしていない場合のみ表示されます)。
[役割サービスの選択] ページで [次へ] をクリックします。
[インストール オプションの確認] ページで [インストール] をクリックします。
[結果] ページで [閉じる] をクリックします。
Windows Vista
タスク バーで [スタート] をクリックし、[コントロール パネル] をクリックします。
[コントロール パネル] で [プログラムと機能]、[Windows の機能の有効化または無効化] の順にクリックします。
[インターネット インフォメーション サービス]、[World Wide Web サービス]、[アプリケーション開発機能] の順に展開します。
[ASP] を選択して、[OK] をクリックします。
方法
サーバーの ASP キャッシュ設定の構成方法
タスク バーで [スタート] をクリックし、[管理ツール] をポイントして [インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
[接続] ウィンドウでサーバーの名前を強調表示します。
サーバーの [ホーム] ウィンドウで [ASP] をダブルクリックします。
[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()