Asp.net IIS 7.5 Web.config文件-哪个缓存指令具有高优先级?

Asp.net IIS 7.5 Web.config文件-哪个缓存指令具有高优先级?,asp.net,caching,web-config,iis-7.5,Asp.net,Caching,Web Config,Iis 7.5,通常,Asp.Net(MVC或非MVC)Web应用程序的Web.config文件在system.webServer部分下有两条缓存指令: <staticContent> <clientCache cacheControlMaxAge="07.00:00:00" cacheControlMode="UseMaxAge" /> </staticContent> 这一项将所有静态内容的缓存控制设置为最大年龄:(现在+7天) 同一节中也有本指令: <

通常,Asp.Net(MVC或非MVC)Web应用程序的Web.config文件在system.webServer部分下有两条缓存指令:

<staticContent>
    <clientCache cacheControlMaxAge="07.00:00:00" cacheControlMode="UseMaxAge" />
</staticContent>

这一项将所有静态内容的缓存控制设置为最大年龄:(现在+7天)

同一节中也有本指令:

<caching>
    <profiles>
        <add extension=".jpg" location="Any" policy="CacheForTimePeriod" duration="7.00:00:00" kernelCachePolicy="CacheUntilChange" />
    </profiles>
</caching>

此指令将.jpg文件的缓存头设置为过期:7天,并启用所有位置(代理、浏览器等)的缓存

我不明白的是,哪个指令优先于另一个?如果省略.jpg的概要文件,它会接受clientCache指令的值吗?(假设由静态文件处理程序处理)


“kernelCachePolicy”实际上是做什么的?

首先,这个参数是IIS如何保存缓存的指令

静态内容缓存,创建IIS,自动添加客户端头,并向浏览器说明如何将内容保留在其缓存上以及保留多长时间

静态内容是不变的内容,如图像

<staticContent>
    <clientCache .... />
</staticContent>

您提到的第二个缓存是服务器端缓存。对于dynamica制作的页面,最好使用if。它将呈现的页面保存在内存中,并在请求时从内存中提供

<caching>
    <profiles>
        <add .... />
    </profiles>
</caching>

也在IIS网站上。


谢谢你的回答@Aristos。我认为这意味着它们不会相互影响(或相互覆盖)。由于MVC没有扩展,outputCache是它的首选缓存,缓存配置文件用于特殊情况。@Alaminut是的,它们不会相互覆盖。我个人的意见是在web.config上使用静态内容缓存设置,并对动态缓存使用asp.net编程,这样您就可以通过编程控制它。