如何停止ASP.NET webforms页缓存不同版本

如何停止ASP.NET webforms页缓存不同版本,asp.net,caching,browser-cache,Asp.net,Caching,Browser Cache,我有一个默认页面,可以根据以下情况显示3种不同的内容: 用户未登录 用户已登录,但尚未进行设置 用户已登录并设置了一些内容 发生的事情是,(1)和(2)有时会在应该是另一个的时候显示出来。I ctrl-r后,将显示正确的版本。 这与“浏览器后退”按钮无关,它发生在单击菜单选项转到默认页面或执行某些操作将用户带到默认页面后 我还为页面设置了一个路由,这样就可以在页面上附加一个用户名。例如:http://www.example.com/user1234 我提到这一点,以防可能与此有关 这就是我试图停

我有一个默认页面,可以根据以下情况显示3种不同的内容:

  • 用户未登录
  • 用户已登录,但尚未进行设置
  • 用户已登录并设置了一些内容
  • 发生的事情是,(1)和(2)有时会在应该是另一个的时候显示出来。I ctrl-r后,将显示正确的版本。
    这与“浏览器后退”按钮无关,它发生在单击菜单选项转到默认页面或执行某些操作将用户带到默认页面后

    我还为页面设置了一个路由,这样就可以在页面上附加一个用户名。例如:
    http://www.example.com/user1234

    我提到这一点,以防可能与此有关

    这就是我试图停止缓存的原因:

    <%@ OutputCache Location="None" VaryByParam="None" %>
    
    知道我做错了什么吗

    ETA

    根据一些评论,我在Chrome隐姓埋名模式下试过,没有问题。我试着打开控制台来查看标题,但不幸的是问题消失了。以下是标题:

    请求

    GET/HTTP/1.1主机:本地主机:2873连接:保持活动状态
    缓存控制:最大年龄=0接受: text/html,application/xhtml+xml,application/xml;q=0.9,图像/webp,/;q=0.8 用户代理:Mozilla/5.0(Windows NT 6.1)AppleWebKit/537.36(KHTML, 如壁虎)Chrome/34.0.1847.92 Safari/537.36参考:…/signin 接受编码:gzip,deflate,sdch接受语言:en-US,en;q=0.8
    饼干:

    响应

    HTTP/1.1 200 OK缓存控制:无缓存,无存储杂注:无缓存 内容类型:text/html;charset=utf-8内容编码:gzip
    过期:-1变化:接受编码服务器:Microsoft IIS/8.0
    X-AspNet-Version:4.0.30319 X-SourceFiles:=?UTF-8?B?…
    X-Powered-By:ASP.NET日期:2014年3月27日星期四20:17:39 GMT
    内容长度:3045

    ETA2

    我一直在Chrome上测试,我刚刚发现FireFox没有问题

    如果我登录/退出/进入/退出。。。没有问题

    如果我登录/退出,然后使用错误的密码登录几次(导致登录页面中出现回发),然后再次正确登录,它总是在Chrome中显示错误的注销页面

    我也有同样的问题。我所做的就是把这个地方

    Response.CacheControl=“无缓存”


    在任何其他代码运行之前在页面加载中。这为我解决的问题与你的类似。当用户登录时,将在下拉框中加载该用户所属的不同存储。如果我更改了他们的商店,他们可以导航回页面并查看他们的旧商店集。我将上述内容放在页面加载中,解决了IE、Chrome和Firefox中的问题。希望像这样简单的事情能解决你的问题

    要解决特定文件的缓存问题,必须添加

    <location path="WebForm1.aspx">
            <system.webServer>
                <caching enabled="false" enableKernelCache="false" />
            </system.webServer>
    </location>
    
    
    
    进入web.config的配置部分

    您也可以使用IIS来完成。使用IIS设置无缓存的步骤如下所示

  • 转到您的网站内容视图。右键单击文件并切换到“要素”视图
  • 选择文件后,从IIS打开输出缓存
  • 从右侧的操作窗格中,单击编辑功能设置,然后从对话框中取消选中
    启用缓存
    启用内核缓存
    。单击“确定”将设置保存到web.config中

  • 看看这里,看看它是否有希望

    这在Chrome Incognito中是否正常工作?(这可能有助于排除任何编码问题)。如果您使用Fiddler,您是否看到它在显示错误的情况下发出请求?(我假设您没有看到请求,并且它确实正在加载缓存副本)如果您没有Fiddler,您可以使用Chrome开发工具。响应头是否有max age=0和/或没有缓存值?一些非常好的想法,谢谢,我会尝试一下…好的,它在匿名模式下工作得很好。不幸的是,当控制台打开时,量子效应就开始发挥作用,而这并没有发生。我会以任何方式为默认页面添加请求和响应标题。您是否在使用URL重写?谢谢,我会尝试,尽管我以前尝试过其他“最终”响应。缓存。*所以不抱太大希望。祝你好运!我明天会测试…不幸的是,它不起作用:(我只是在Chrome中遇到这个问题,不是FF。我只是测试了登录到另一个页面并注销。注销后,它返回到默认页面并显示登录页面。我必须按住ctrl-r键才能显示正确的页面。有相同的问题。Lame上面没有修复它,因为它修复了我的页面。Humpy,你是否通过名称?例如,或者像这样:http/myswebsite.com?如果我在重定向中使用该名称,问题就会消失。我使用~/Folder/Page.aspx重定向的是我的站点主机,如果只是我的主页,则是~/home.aspx。另一个失败:(我很确定这与使用路由有关,但不知道如何修复。
    <location path="WebForm1.aspx">
            <system.webServer>
                <caching enabled="false" enableKernelCache="false" />
            </system.webServer>
    </location>