共用方式為


HTTP.sys不會快取內容的實例

本文介紹HTTP.sys驅動程式不會快取內容的實例。

原始產品版本:網際網路資訊服務
原始 KB 編號: 817445

HTTP.sys未快取的情況

回應快取會 HTTP.sys 快取要求標頭中具有適當旗標的任何要求。 每個要求會停用此快取。 不過,如果下列一或多個條件成立, HTTP.sys 則不會快取要求回應:

  • 要求不是匿名要求。

  • 要求需要驗證。 (例如,要求包含 Authorization: 標頭。

  • 網站已設定為使用頁尾。

  • 動態壓縮已啟用,並用於回應。

    注意

    靜態壓縮可以搭配 HTTP.sys 快取使用。

  • 靜態檔案是通用命名約定 (UNC) 檔案,而且 DoDirMonitoringForUnc 未啟用登錄機碼。

    注意

    您可以使用 DoDirMonitoringForUnc 登錄屬性 (DWORD 值) 將靜態檔案快取切換回變更通知快取。 這會設定如下: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Inetinfo\Parameters
    預設值為 0,或未啟用。 它可以設定為 1,以根據變更通知啟用靜態內容的快取。

  • 要求包含查詢字串。

  • 快取已停用。 (也就是說, MD_VR_NO_CACHE Metabase 屬性等於 1。

    注意

    如需 Metabase 屬性的詳細資訊 MD_VR_NO_CACHE ,請參閱產品檔。 若要檢視此檔,請參閱 DisableStaticFileCache

  • 要求具有實體主體。

  • URL 已啟用憑證對應。

  • 網站已啟用自定義記錄。

  • 要求 HTTP 版本不是 1.1 或 1.0。

  • 要求包含 Translate: f 標頭。

  • Expect:未完全100 continue包含標頭。

  • 要求包含 If-Range: 標頭或 Range: 標頭。

    注意

    HTTP.sys 只會處理整個回應。 HTTP.sys 不會嘗試傳送範圍回應。

  • 回應跨越多個 SendResponseSendResponseEntityBody 呼叫。

    注意

    可快取的回應必須在單一向量 SendResponse 呼叫中關閉。

  • 回應大小總計大於每個回應的大小上限。 最大值由 UriMaxUriBytes 登錄機碼控制,預設值為 256 KB。

  • 響應標頭大小大於每個響應標頭大小上限。 默認值為 1,024 個字節。

  • 快取已滿。 默認大小會與計算機中的物理記憶體成正比。

  • 回應長度為零。

  • 已安裝未感知快取的因特網伺服器應用程式介面 (ISAPI) 篩選器。

    注意

    根據預設,ISAPI 篩選器不會快取感知。 您必須設定篩選的 FilterEnableCache Metabase 屬性,才能讓它感知快取。 IIS 預設安裝中的所有篩選都會感知快取。 這包括 FrontPage 和 ASP.NET。
    如需 Metabase 屬性的詳細資訊 FilterEnableCache ,請檢視 Windows 10 部署的新功能。

  • 靜態檔案會以預設檔的形式存取。 (例如,Default.htm存在於根目錄中。依名稱存取特定檔案 (http://contoso.com/default.htm/) 會導致 HTTP.sy快取檔案。 藉由要求根資料夾存取網站 (http://contoso.com/) 會導致未快取的回應。

    注意

    如果無法存取預設檔案清單中所列的第一頁,IIS 會嘗試在 [預設檔案] 清單中提供第二頁。 在此情況下,不會從快取提供該靜態頁面。