本文介紹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_CACHEMetabase 屬性等於 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不會嘗試傳送範圍回應。回應跨越多個
SendResponse和SendResponseEntityBody呼叫。注意
可快取的回應必須在單一向量
SendResponse呼叫中關閉。回應大小總計大於每個回應的大小上限。 最大值由
UriMaxUriBytes登錄機碼控制,預設值為 256 KB。響應標頭大小大於每個響應標頭大小上限。 默認值為 1,024 個字節。
快取已滿。 默認大小會與計算機中的物理記憶體成正比。
回應長度為零。
已安裝未感知快取的因特網伺服器應用程式介面 (ISAPI) 篩選器。
注意
根據預設,ISAPI 篩選器不會快取感知。 您必須設定篩選的
FilterEnableCacheMetabase 屬性,才能讓它感知快取。 IIS 預設安裝中的所有篩選都會感知快取。 這包括 FrontPage 和 ASP.NET。
如需 Metabase 屬性的詳細資訊FilterEnableCache,請檢視 Windows 10 部署的新功能。靜態檔案會以預設檔的形式存取。 (例如,Default.htm存在於根目錄中。依名稱存取特定檔案 (
http://contoso.com/default.htm/) 會導致HTTP.sy快取檔案。 藉由要求根資料夾存取網站 (http://contoso.com/) 會導致未快取的回應。注意
如果無法存取預設檔案清單中所列的第一頁,IIS 會嘗試在 [預設檔案] 清單中提供第二頁。 在此情況下,不會從快取提供該靜態頁面。