需要有关实现ASP.NET自定义输出缓存的建议

时间:2011-02-09 14:44:08

标签: c# .net asp.net caching

我的网站与博客类似,页面内容不会经常更改。所以我决定使用页面输出缓存。

但是当我在每个页面上输出缓存并将缓存持续时间设置为1小时时,我的网站托管提供了暂停我的网站,因为它使用了大量的系统内存。之后我将持续时间重新设置为2分钟,但有时我会收到数据库连接超时错误。

为了获得更好的性能,无论如何我需要缓存,但不要缓存在内存中。所以我提出了以下想法。请告知它是最好的方法还是有更好的解决方案?

我想编写HTTP模块来拦截所有请求。如果不存在特定请求的缓存版本,则它将页面响应(使用过滤器写入)写入磁盘作为文件,否则将此文件作为响应发送。

目标框架是2.0

1 个答案:

答案 0 :(得分:0)

如果您使用的是ASP.NET 4.0,那么您不需要将其编写为HttpModule - 输出缓存是基于提供程序的,您可以编写新的提供程序并将其插入.Gunnar Peipman非常棒有关编写基于文件的输出缓存提供程序的博客here