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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值