2014-04-29 86 views
0

我有一個目錄中的緩存規則通過文件擴展名,並且該目錄中有2個動態頁面。輸出緩存不緩存所有頁面

<configuration> 
     <system.webServer> 
      <caching> 
       <profiles> 
        <add extension=".asp" 
         policy="CacheForTimePeriod" 
         kernelCachePolicy="DontCache" 
         duration="03:00:00" 
         location="Any" 
         varyByQueryString="*" /> 
       </profiles> 
      </caching> 
     </system.webServer> 
    </configuration> 

真的是沒有兩者之間的差異顯著,他們都逃跑查詢字符串,但是,IIS不想要緩存其中的一個由於某種原因,我想不通爲什麼。其中一頁完全緩存,但另一頁沒有。我認爲這可能是由於輸出文件大小,因爲緩存的頁面總是小於256kb,另一個通常是結束的,而256kb是MaxCachedFileSize中的默認設置。所以我添加下面的註冊表按毫秒建議:

HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\MaxCachedFileSize

我將它設置爲10485760個字節(10MB),因爲默認情況下爲256KB。仍然沒有緩存。正如我所說的,同一目錄中的另一個文件緩存很好,但另一個文件卻沒有。不知道它可能是什麼,幾乎沒有任何服務器上使用的內存,所以我不認爲這可能是內存空間不可用的問題。

另外,我讀過在頁面中發送cookie可能會導致IIS不緩存頁面,但這兩個頁面都不發送cookie。

回答

0

從頁面中刪除Response.Flush爲未來的任何人做了訣竅。