禁止IIS缓存静态文件的方法(png,js,html等)
发布时间:2022-07-05 04:16:27
禁止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,然后打开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
如果该键不存在可以新建dword。
注意事项:
通常情况下我们并不需要禁用IIS的静态文件缓存,iis会自动根据静态文件的修改时间自动更新缓存;只有在你遇到非常情况下才有必要禁用IIS缓存。IIS缓存和Http缓存相关头没有任何关系,在IIS上加缓存头没有办法清除掉IIS对静态文件的缓存。
转载请保留链接 玉开的技术博客
猜你喜欢
- 友情在网络中是一种信任,一种责任,也是一种品德,友情链接就是充满着善意友好的相互合作,在网络中大家更多的讲的应该是共赢,因而友情链接对于网站
- 最近发现Godaddy控制面板又更新了,搞的有些东西都不知道点哪里,呵呵,特此我们发表这篇文章,以后配置的时候直接来这里看方便广大Godad
- 1、图片站图片站的内容是图片而不是文章,但是GOOGLR广告是文章无法匹配,影响到您站的整体美观建议不要用。2、小说站网站浏览者多是老用户,
- 分词技术对搜索引擎来说是指将文本中的词语分离和抽取出来,使得搜索引擎能够通过矩阵,向量等方式保存网页并作出合适的索引,对于我们seo来说是将
- FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵
- 网站seo了,优化了,结构,内容,链接一个都没放过,那么这样就够了么?是的还不够,就跟谈完“恋爱”结
- “创业”这是我们讲得最多的一个话题,网络创业的故事也被我们津津乐道;只要留心观察下,就不难发现这样一个有趣的现象——很多网络创业的朋友会选择
- CentOS 6.x最新版本为CentOS 6.6,下面介绍CentOS 6.6的具体安装配置过程,需要的朋友可以参考下说明:Centos6
- 代码如下: function getCookie(Name) { var search = Name + "="; if
- 计算网格为那些强大的新型探索工具提供了基础设施,这些基础设施包括桌面计算、智能设备、协作和分布式计算。Globus 项目(Globus Pr
- 最近用dedecms做了个网站 www.iiseo.com 找了半天终于知道了一个简单的生成sitemap的方法,好东西不敢独享
- 省份 ( 城市 ) DNS 名称 DNS IP ADDRESS香港 ns1.netvigator.com 205.252.144
- FEED是WEB 2.0时代一种重要的网站阅读手段。通过FEED订阅,用户不需要登录网站就可以了解到该网站上最新的更新。而且随着鲜果、Goo
- 北京时间11月14日消息,据国外媒体报道,微软Office 2010 beta版提前泄露,用户不必等到下周微软正式发布,现在就可以在P2P网
- 在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下:1.${var} 2.$(cmd) 3.()和{} 4
- 包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能会决定丢弃(DROP)这个包,可能会接受(AC
- docker使用1. docker ps 查看运行中的容器2. docker images 查看docker镜像3. docker rm i
- 最近遇到wordpress的头像在国内一直显示不出来,问题发生在WordPress 3.0以上,WordPress的头像服务Gravatar
- 调整Discuz 帖内图片最大宽度,发现只调整“系统设置→界面→界面管理→帖子内容页→帖内图片最大宽度”并不行,原来在Discuz 7.1中
- 1. 自定义错误页虽然自定义错误页很简单,但只有少数管理员有效地利用了它。管理员可以在MMC中将HTTP错误信息映像到服务器上的绝对URL或