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

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

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....