ASP 快取快取 <>
概觀
元素 <cache>
的 <asp>
元素會指定下列 Active Server Pages (ASP) Internet Information Services (IIS) 7 的快取設定,以控制 ASP 的效能行為:
- diskTemplateCacheDirectory屬性包含 ASP 用來在記憶體內部快取溢位之後將編譯的 ASP 範本儲存至磁片的目錄名稱。 如果預設目錄已變更,您必須確定執行 ASP 的進程身分識別已獲指派給新目錄的完整控制許可權。
- enableTypelibCache屬性會指定是否在伺服器上快取類型程式庫。
- maxDiskTemplateCacheFiles屬性的值會指定可儲存的已編譯 ASP 範本數目上限。 (儲存已編譯範本的目錄是由 diskTemplateCacheDirectory 屬性所設定。)
- scriptFileCacheSize屬性會指定要快取的先行編譯腳本檔案數目。 如果設定為 0,則不會快取任何指令碼檔案。 如果設定為 4294967295,則會快取要求的所有腳本檔案。 此屬性可用來調整效能,視可用的記憶體數量和腳本檔案流量而定。
- scriptEngineCacheMax屬性會指定 ASP 頁面將保留在記憶體中的腳本引擎數目上限。
相容性
版本 | 備註 |
---|---|
IIS 10.0 | 未在 IIS 10.0 中修改專案 <cache> 。 |
IIS 8.5 | 未在 IIS 8.5 中修改專案 <cache> 。 |
IIS 8.0 | 未在 IIS 8.0 中修改專案 <cache> 。 |
IIS 7.5 | 未在 IIS 7.5 中修改專案 <cache> 。 |
IIS 7.0 | 元素 <cache> 的 <asp> 元素是在 IIS 7.0 中引進。 |
IIS 6.0 | 元素 <cache> 會取代下列 IIS 6.0 中繼基底屬性:
|
安裝程式
若要在 Web 服務器上支援及設定 ASP 應用程式,您必須安裝 ASP 模組。 若要安裝 ASP 模組,請使用下列步驟。
Windows Server 2012 或 Windows Server 2012 R2
- 在工作列上,按一下 [伺服器管理員]。
- 在[伺服器管理員] 中,按一下 [管理] 功能表,然後按一下 [新增角色及功能]。
- 在 [ 新增角色及功能精 靈] 中,按 [ 下一步]。 選取安裝類型,然後按 [ 下一步]。 選取目的地伺服器,然後按 [ 下一步]。
- 在 [ 伺服器角色] 頁面上,依序展開 [ Web 服務器 (IIS) ]、[ Web 服務器]、[ 應用程式開發],然後選取 [ ASP]。
- 如果 [ 新增 ASP? 所需的功能? ] 對話方塊隨即出現,請按一下 [ 新增功能]。 (只有在您尚未在 server 上安裝 ISAPI 擴充功能角色服務時,才會顯示此頁面。)
- 在 [伺服器角色] 頁面上,按 [下一步]。
- 在 [選取功能] 頁面上,按 [下一步]。
- 在 [確認安裝選項] 頁面上,按一下 [安裝]。
- 在 [結果] 頁面上,按一下 [關閉]。
Windows 8 或 Windows 8.1
在 [開始] 畫面上,將指標一路移至左下角,以滑鼠右鍵按一下 [開始] 按鈕,然後按一下[主控台]。
在主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。
依序展開 [Internet Information Services]、[ 萬維網服務]、[ 應用程式開發功能],然後選取 [ASP]。
注意
如果尚未安裝 ISAPI 擴充功能角色,將會選取它。
按一下 [確定]。
按一下 [關閉] 。
Windows Server 2008 或 Windows Server 2008 R2
- 在工作列上,按一下 [開始],指向 [系統管理工具],然後按一下[伺服器管理員]。
- 在[伺服器管理員階層] 窗格中,展開 [角色],然後按一下 [Web 服務器] (IIS) 。
- 在 [ Web Server (IIS) ] 窗格中,捲動至 [ 角色服務 ] 區段,然後按一下 [ 新增角色服務]。
- 在 [新增角色服務精靈] 的 [選取角色服務] 頁面上,選取[ASP]。
- 如果 [ ASP 所需的新增角色服務 ] 對話方塊出現,請按一下 [ 新增必要的角色服務]。 (只有在您尚未在 server 上安裝 ISAPI 擴充功能角色服務時,才會顯示此頁面。)
- 在 [選取角色服務] 頁面上,按 [下一步]。
- 在 [確認安裝選項] 頁面上,按一下 [安裝]。
- 在 [結果] 頁面上,按一下 [關閉]。
Windows Vista 或 Windows 7
- 在工作列上,按一下 [開始],然後按一下[主控台]。
- 在主控台中,按一下 [程式和功能],然後按一下[開啟或關閉 Windows 功能]。
- 依序展開 [Internet Information Services]、[ World Wide Web 服務] 和 [ 應用程式開發功能]。
- 選取 [ASP],然後按一下 [ 確定]。
作法
如何設定伺服器的 ASP 快取設定
開啟 [Internet Information Services (IIS) 管理員:
如果您使用 Windows Server 2012 或 Windows Server 2012 R2:
- 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services (IIS) Manager]。
如果您使用 Windows 8 或 Windows 8.1:
- 按住Windows鍵,按字母X,然後按一下[主控台]。
- 按一下 [系統管理工具],然後按兩下 [ Internet Information Services (IIS) Manager]。
如果您使用 Windows Server 2008 或 Windows Server 2008 R2:
- 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
如果您使用 Windows Vista 或 Windows 7:
- 在工作列上,按一下 [開始],然後按一下[主控台]。
- 按兩下 [系統管理工具],然後按兩下 [ Internet Information Services] (IIS) Manager。
在 [ 連線] 窗格中,反白顯示伺服器的名稱。
在伺服器的 [ 首頁 ] 窗格中,按兩下 [ASP]。
在[ASP] 窗格中,展開 [快取屬性] 區段,設定您想要的設定,然後按一下 [動作] 窗格中的 [套用]。
組態
屬性
屬性 | 描述 |
---|---|
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,則不會快取任何指令碼檔案。 如果設定為 4294967295,則會快取要求的所有腳本檔案。 這個屬性是用來調整效能,視可用的記憶體數量和腳本檔案流量而定。 預設值是 500 。 |
子元素
無。
組態範例
下列組態範例會設定 ASP 範本快取的目錄、可儲存至 400 的已編譯 ASP 範本數目上限、快取至 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 範本快取的目錄、可儲存至 400 的已編譯 ASP 範本數目上限、要快取的預先編譯腳本檔案數目為 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
注意
當您使用AppCmd.exe設定這些設定時,請務必將 認可 參數 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()