老男人百科 > 百科 > 正文

停止iis命令(禁用iis内核缓存)

2023-04-24 23:36:27 阅读( 6632)

禁止IIS缓存静态文件(png、js、html等)背景:IIS为了提高性能,默认情况下会对静态文件js、html、gif、png等做内部缓存,这个缓存是在服务器iis进程的内存中的。

禁止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. Enter Notepad C: \ Windows \ System32 \ inetsrv \ metabase.xml to open the configuration file (the same as ImmigrationInspectors) during operation.

3.在文件中搜索禁止缓存的虚拟目录的名称,并找到类似下面的配置部分。

访问标志='访问读取访问脚本'

AppFriendlyName='inc'

AppIsolated='2'

AppRoot='/LM/W3SVC/1832041641/Root/inc'

DirBrowseFlags=' DirBrowseShowDate DirBrowseShowTime dirbrowseshowsesize DirBrowseShowExtension DirBrowseShowLongDate EnableDefaultDoc '

Path='D:\publish\inc'

在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对静态文件的缓存。

专题页