微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – .NET OutputCache指令不起作用

我一直有奇怪的缓存问题,并将一个非常简单的.NET页面输出缓存指令组合在一起.但是,页面不缓存(每次刷新时内容都会更新).

我在我的本地计算机(Windows 7)上安装了一个简单,最小的CMS(Ektron v.9.0 SP2)站点.在这个网站项目中,我创建了一个用于测试输出缓存的简单页面.这是页面代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CacheTest.aspx.cs" Inherits="CacheTest" %>
<%@ OutputCache Duration="3600" Location="Server" varyByParam="None" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Cache Test</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <p><%= DateTime.Now.ToString() %></p>
    </div>
    </form>
</body>
</html>

页面根本不缓存.

在我们的生产站点上,OutputCache通常也不起作用,除了在一个完全像上面配置的测试页面上.我无法弄清楚为什么一个页面是不同的,并且是唯一一个在开发服务器上工作但是当复制到我的localhost上运行的站点时,它不再起作用.

我注意到在我们的生产站点上,使用母版页似乎使输出缓存不起作用,尽管在这个localhost站点中我没有使用母版页但它仍然不起作用.

我应该从哪里开始寻找解决此问题的方法?我查看了IIS设置,找不到任何明显的设置来打开/关闭页面级缓存.我也广泛搜索过网络,似乎无法找到其他人.

解决方法

Microsoft已禁用包含cookie的页面输出缓存,以防止一个用户获取专为其他用户设置的页面的缓存版本.

有一种解决方法可以从输出删除cookie.
看到
https://support.episerver.com/hc/en-us/articles/115004119986-output-caching-broken

作为替代方案,您还可以通过缓存用户控件来使用部分页面缓存.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐