ASP.NET MVC中OutputCacheAttribute是否受IIS缓存大小限制参数影响?
ASP.NET MVC服务器端OutputCache与IIS缓存限制的关系及容量配置方法
是否受IIS“缓存大小限制(MB)”参数影响?
你使用的[OutputCache(Duration = 86400, Location = System.Web.UI.OutputCacheLocation.Server)]属于ASP.NET Runtime管理的服务器端输出缓存,和IIS层级的输出缓存是两个完全独立的缓存体系,因此确实不会受IIS“缓存大小限制(MB)”参数的影响。IIS的输出缓存由IIS内核模块管控,而ASP.NET的Server端OutputCache存储在ASP.NET专属的内存缓存池中,由ASP.NET框架自行维护。
配置该缓存最大容量的方法
应用级配置(单站点生效)
在站点的web.config文件中,通过<system.web>下的<caching>节点配置输出缓存的容量限制:
<system.web> <caching> <outputCache enableOutputCache="true"> <!-- 设置缓存可使用的最大私有内存字节数,示例为100MB(1024*1024*100) --> <privateBytesLimit>104857600</privateBytesLimit> <!-- 可选:设置缓存可使用的物理内存百分比,范围0-100,示例为20% --> <percentagePhysicalMemoryUsedLimit>20</percentagePhysicalMemoryUsedLimit> </outputCache> </caching> </system.web>
- 当缓存占用达到
privateBytesLimit或percentagePhysicalMemoryUsedLimit的阈值时,ASP.NET会自动启动缓存清理策略,移除最久未使用的缓存条目。 - 两个参数二选一即可,无需同时配置。
全局级配置(服务器所有ASP.NET站点生效)
如果需要对服务器上所有ASP.NET应用统一设置,可修改machine.config文件(路径通常为C:\Windows\Microsoft.NET\Framework\[你的.NET版本]\CONFIG或Framework64对应目录),在文件的<system.web>节点下添加上述相同的<caching>配置即可。
内容的提问来源于stack exchange,提问作者Gérard Lambert
相关产品推荐
相关产品推荐

