后台使用ASP.NET的Cache类添加了一条缓存,可以正常获取到。然后我想在IIS中把缓存清理掉,百度了一个方法把IIS该网站的HTTP头中的Cache-Control设置为no-cache可以清理。使用后发现了一个百思不得其解的问题,在设置完Cache-Control为no-cache后,浏览器确实获取不到缓存了,服务器返回的报文头中添加了Cache-Control:no-cache,我理解的意思是告诉浏览器不使用缓存,但是这时如果再添加一个Cache,浏览器还是能获取到,那这样no-cache不就没起作用么?而且我把这个HTTP头删除后,刚添加的Cache也被清理了,这是为什么?还有Cache类所添加的缓存是存放在浏览器端还是服务器端呢?

解决方案 »

  1.   

    你这是张冠李戴了,把 html 的东西给弄到 asp.net cache 上面了。
      

  2.   

    Cache-Control控制的是用户端浏览器的缓存,ASP.NET的Cache类控制的是服务器端的缓存,两者不想干,怎么可能一个控制另一个呢
      

  3.   

    但是我添加了这个属性以后,服务器的缓存确实不起作用了,我的理解是浏览器不使用服务器端的缓存了。但不明白的是如果再添加一个新的Cache,浏览器还是继续使用新的Cache。就好像是一次性清理了一次浏览器的缓存一样
      

  4.   

    我知道http头是浏览器的东西,cache是服务器的,我只是不明白为什么加了no-cache后服务器的缓存消失了
      

  5.   

    asp.net  mvc里 加在控制器 方法上的outCache 是不是缓存的数据? 页面还是会重计算一次