共用方式為


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 中繼基底屬性:
  • 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? 所需的功能? ] 對話方塊隨即出現,請按一下 [ 新增功能]。 (只有在您尚未在 server 上安裝 ISAPI 擴充功能角色服務時,才會顯示此頁面。)
  6. 在 [伺服器角色] 頁面上,按 [下一步]。
  7. 在 [選取功能] 頁面上,按 [下一步]
  8. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  9. 在 [結果] 頁面上,按一下 [關閉]

Windows 8 或 Windows 8.1

  1. 在 [開始] 畫面上,將指標一路移至左下角,以滑鼠右鍵按一下 [開始] 按鈕,然後按一下[主控台]。

  2. 主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。

  3. 依序展開 [Internet Information Services]、[ 萬維網服務]、[ 應用程式開發功能],然後選取 [ASP]。
    顯示針對 Windows 8 選取的 S P 的螢幕擷取畫面。

    注意

    如果尚未安裝 ISAPI 擴充功能角色,將會選取它。

  4. 按一下 [確定]。

  5. 按一下 [關閉] 。

Windows Server 2008 或 Windows Server 2008 R2

  1. 在工作列上,按一下 [開始],指向 [系統管理工具],然後按一下[伺服器管理員]。
  2. [伺服器管理員階層] 窗格中,展開 [角色],然後按一下 [Web 服務器] (IIS)
  3. 在 [ Web Server (IIS) ] 窗格中,捲動至 [ 角色服務 ] 區段,然後按一下 [ 新增角色服務]。
  4. 在 [新增角色服務精靈] 的 [選取角色服務] 頁面上,選取[ASP]。
    顯示 [新增角色服務] 對話方塊中 [選取角色服務] 頁面的螢幕擷取畫面。S P 會在 [應用程式開發] 節點下選取。
  5. 如果 [ ASP 所需的新增角色服務 ] 對話方塊出現,請按一下 [ 新增必要的角色服務]。 (只有在您尚未在 server 上安裝 ISAPI 擴充功能角色服務時,才會顯示此頁面。)
    顯示 [新增角色服務] 訊息方塊的螢幕擷取畫面。
  6. 在 [選取角色服務] 頁面上,按 [下一步]
  7. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  8. 在 [結果] 頁面上,按一下 [關閉]

Windows Vista 或 Windows 7

  1. 在工作列上,按一下 [開始],然後按一下[主控台]。
  2. 主控台中,按一下 [程式和功能],然後按一下[開啟或關閉 Windows 功能]。
  3. 依序展開 [Internet Information Services]、[ World Wide Web 服務] 和 [ 應用程式開發功能]。
  4. 選取 [ASP],然後按一下 [ 確定]。
    顯示針對 Windows 7 選取 [S P] 的螢幕擷取畫面。

作法

如何設定伺服器的 ASP 快取設定

  1. 開啟 [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
  2. 在 [ 連線] 窗格中,反白顯示伺服器的名稱。

  3. 在伺服器的 [ 首頁 ] 窗格中,按兩下 [ASP]。
    顯示 [伺服器首頁] 窗格的螢幕擷取畫面。已選取 S P。

  4. [ASP] 窗格中,展開 [快取屬性] 區段,設定您想要的設定,然後按一下 [動作] 窗格中的 [套用]。
    顯示 [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,則不會快取任何指令碼檔案。 如果設定為 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()