技术文章 > [原创]ASPX.NET慎用OUTPUTCACHE页面缓存

[原创]ASPX.NET慎用OUTPUTCACHE页面缓存

2018-06-22 01:42

文档管理软件,文档管理系统,知识管理系统,档案管理系统的技术资料:
[原创] aspx.net慎用OutputCache页面缓存

微软的IIS 6.0提供了全新的页面缓存机制,我们只需要在一个.aspx文件中增加OutputCache设置,代码如下:

<%@ OutputCache Duration=“60“ VaryByParam=“*“%>

上面的设置表示:缓存1分钟,根据不同的查询字符串更新缓存。
Location使用的是默认值Any,也就是可以在浏览器、代理服务器、Web服务器三个地方进行缓存。

页面缓存技术带来的好处是:

1 性能——将相应数据存储起来以避免数据的重复创建、处理和传输,可有效提高性能。比如将不改变的数据缓存起来,例如国家列表等,这样能明显提高web程序的反应速度;
2 稳定——同一个应用中,对同一数据、逻辑功能和用户界面的多次请求时经常发生的。当用户基数很大时,如果每次请求都进行处理,消耗的资源是很大的浪费,也同时造成系统的不稳定。例如,web应用中,对一些静态页面的呈现内容进行缓存能有效的节省资源,提高稳定性。而缓存数据也能降低对数据库的访问次数,降低数据库的负担和提高数据库的服务能力;
3 可用——有时,提供数据信息的服务可能会意外停止,如果使用了缓存技术,可以在一定时间内仍正常提供对最终用户的支持,提高了系统的可用性。

然而,这样的使用会带来两个严重的后果:

(1)如果某用户以 wap 方式浏览网站,而正好遇到需要更新缓存;结果可想而知;需要特别注意;
(2)与页面压缩技术,如果IIS启用“动态内容压缩”,您将得到不可预知的结果。
(3)可能成为黑客的一种攻击手段;

解决之道:
使用 C# 中的 Cache 自行管理缓存信息,而不依赖于 OutputCache。

北京联高软件开发有限公司
Happy for coding!