国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > IIS > 正文

如何禁止IIS緩存靜態文件(png、js、html等)

2024-08-29 03:14:37
字體:
來源:轉載
供稿:網友

禁止IIS緩存靜態文件(png、js、html等)背景:

IIS為了提高性能,默認情況下會對靜態文件js、html、gif、png等做內部緩存,這個緩存是在服務器iis進程的內存中的。IIS這么做在很大程度上可以提高靜態文件的訪問性能,在正常情況下只要靜態文件更新了IIS也會更新緩存。但是如果更新的靜態文件很多就有可能出現緩存不更新的情況。

彎路:

我遇到這樣一個場景,服務器循環更新上萬張股票行情圖片,IIS也會對圖片進行緩存,由于更新的頻率很高,文件很多,就出現了IIS緩存文件超過幾十分鐘都無法更新的情況。

這時候直覺是瀏覽器對文件進行了緩存,于是就在IIS的目錄上設置Http頭:Cache-Control:no-cache,但是無濟于事,瀏覽器請求服務器端得到的狀態號是200,這可以說明瀏覽器確實是從服務器端得到了新的內容,而非讀取瀏覽器本地緩存。

如何禁止IIS緩存靜態文件(png、js、html等):

通過設置Http頭不讓瀏覽器緩存的方法在這個場景下是行不通的,因為緩存不是出現的客戶端,而是出現在IIS服務器上;所以解決問題還需要從IIS本身入手,通過配置Metabase.xml文件禁止IIS緩存相應目錄下的靜態文件。

1. 首先需要設置IIS允許運行時編輯Metabase.xml文件

如何禁止IIS緩存靜態文件(png、js、html等)

打開IIS,然后打開IIS屬性頁,勾選上“允許直接編輯配置數據庫”選項

2. 在運行中輸入notepad c:/WINDOWS/system32/inetsrv/MetaBase.xml 打開IIS配置文件

3. 在文件中搜索要配置禁止緩存的虛擬目錄名字,找到類似如下配置節

<IIsWebVirtualDir Location ="/LM/W3SVC/1832041641/root/inc"
AccessFlags="AccessRead | AccessScript"
AppFriendlyName="inc"
AppIsolated="2"
AppRoot="/LM/W3SVC/1832041641/Root/inc"
DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate | EnableDefaultDoc"
Path="D:/publish/inc"
>
</IIsWebVirtualDir>

在IIsWebVirtualDir配置節中添加 MD_VR_NO_CACHE=”1“ 屬性

4. 保存配置文件,重啟IIS即可。

如果想配置服務器上的所有站點都禁用IIS緩存可以通過修改注冊表實現:

編輯注冊表中的 DisableStaticFileCache值,0為啟用,1為禁用 ,該鍵值的位置位于:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/InetInfo/Parameters

如果該鍵不存在可以新建。

注意事項:

通常情況下我們并不需要禁用IIS的靜態文件緩存,iis會自動根據靜態文件的修改時間自動更新緩存;只有在你遇到非常情況下才有必要禁用IIS緩存。IIS緩存和Http緩存相關頭沒有任何關系,在IIS上加緩存頭沒有辦法清除掉IIS對靜態文件的緩存。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彰化市| 伊宁市| 大邑县| 玉门市| 深水埗区| 玉龙| 紫云| 嘉善县| 荔波县| 白城市| 奇台县| 股票| 遂溪县| 崇左市| 西安市| 隆林| 鹿泉市| 公安县| 扎赉特旗| 额济纳旗| 泸定县| 洮南市| 济宁市| 新巴尔虎左旗| 平昌县| 嵊州市| 汕尾市| 顺平县| 淮南市| 高密市| 闽清县| 儋州市| 阜阳市| 芦溪县| 青州市| 吐鲁番市| 射洪县| 靖州| 龙井市| 南汇区| 铜川市|