解决方案 »

  1.   

    标签都是类似这种形式的<%@ OutputCache Duration="10000"  VaryByParam="none" %> 
    就首次访问的页面能缓存,莫非iis只能缓存一个页面吗?头都大了,请知道其中缘由的朋友不吝赐教啦,先谢了
      

  2.   

    不太懂楼主什么意思?OutputCache只有访问后才能缓存,没人访问永远不会被缓存
      

  3.   

    谢谢webdiyer牛人的回答,非常欣赏你写的分页代码,非常漂亮。
    我说的这种情况就是访问了 也不会被缓存,只有第一次访问的页面才能被缓存,其他陆续被访问的页面就不能被缓存了。
    我有在pages节点设置成这样: <pages buffer="true">,也不行。
      

  4.   

    VaryByParam="none"  变成 VaryByParam="*" 试试
      

  5.   

    谢谢 laiyongxin的回答, 我刚刚试了你说的方法,还是不行,问题依旧。第一个被访问过的页面缓存正常,其他被访问过的页面依然执行着Page_Load方法。
      

  6.   

    你是说,只有第一个人访问有缓存,而后面的人无论什么时候访问,都没有缓存?你是不是看错了什么东西?比如路径,它的原理即是所有访问者第一个人访问时,产生了一个缓存,这缓存没有消失的话,后面的人无论怎么访问怎么刷新,永远都是打开那个缓存。你可以写个简单ASPX,上面就
    <%@ OutputCache Duration="10"  VaryByParam="none" %>
    <%=DateTime.Now.ToString() %>10秒更新一次,比如你第一次打开是15秒,那你每隔10秒后打开就是25,35,45,如果是每隔15秒打开一次,是30,45,60,当然,60就0了,我只是打个你比较容易理解的比方,当第一个人在第10秒时打开,那么后面无论多少人打开都是10秒,后面一样,缓存是让某些比较固定的数据不用再频繁访问数据从而达到静态效果的功能。
      

  7.   


    如果出现这种情况 ,我只能怀疑,是不是你的IIS处在不停崩溃重启的阶段。
      

  8.   

    to jimil:那倒不可能是崩溃重启的问题,如果崩溃重启的话,那么那个能被缓存的页面也会失去缓存的。
    我现在怀疑是每个页面里都用到的Substitution这个东西造成的缓存异常,按理说Substitution定义的回调方法
    怎么会影响正常的缓存了,真的很诡异。
      

  9.   

    我测试几个不带Substitution的页面,缓存一切正常,只有用到Substitution的页面,除了首次访问的页面有缓存外,其他的都没有。是这个Substitution本身的机制有问题,还是我用的有问题啊,
      

  10.   

    问题解决了 问题出在response中设置了cookie,从而造成的cache失效。