我已将 ARR 配置为执行输出缓存的反向代理。缓存条目的 TTL 为 20 分钟,但似乎缓存文件永远保留在磁盘上。
TTL 在应用程序的 Web.config 文件中根据重写规则进行配置:
<rule name="Default ARR cache control" enabled="true">
<match url=".*" />
<serverVariables>
<!-- First arg of value is: 1 to be always active, 0 only if there are no cache headers set. -->
<set name="ARR_CACHE_CONTROL_OVERRIDE" value="0,max-age=1200" />
</serverVariables>
</rule>
在 HTTP 响应中,我也可以正确地看到这个 max-age 并且缓存确实过期了,我得到了新的结果。如果我打开一个缓存文件,它也会包含Cache-Control: public, max-age=1200
在它的标题中。
但是缓存文件仍然存在,即使未使用。磁盘缓存的“缓存清理间隔”设置为 5 分钟,所以我认为文件最多只能保留 25 分钟,但也有几个月前的文件。
我错过了什么,如何让 ARR 删除过时的缓存文件?
这里解释了如何使用 scavenge.exe 来清理辅助驱动器上的缓存文件,但与主驱动器无关。或者如果我没有一个缓存驱动器慢慢填满,我应该手动运行这个实用程序吗?