加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 06:39:04 所属栏目:asp.Net 来源:网络整理
导读:我一直有奇怪的缓存问题,并将一个非常简单的.NET页面与输出缓存指令组合在一起.但是,页面不缓存(每次刷新时内容都会更新). 我在我的本地计算机(Windows 7)上安装了一个简单,最小的CMS(Ektron v.9.0 SP2)站点.在这个网站项目中,我创建了一个用于测试输出缓存
我一直有奇怪的缓存问题,并将一个非常简单的.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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读