如何缓存 ASP.NET 网站以获得更好的性能

2024-05-10

我是一名网页设计师,通常设计不需要更新的企业网站。所以我想将输出缓存一天。我怎样才能做到这一点?

此外,任何有关在慢速服务器上提高 ASP.NET 性能的建议都被接受。


请注意,ASP.NET 缓存有一个bug http://connect.microsoft.com/VisualStudio/feedback/details/254940/the-serverandclient-parameter-with-the-outputcache-page-directive-does-not-cache-on-the-client-without-code从1.0开始,可以有效禁用客户端缓存。
这就是为什么HttpCachePolicy.SetOmitVaryStar() http://msdn.microsoft.com/en-us/library/system.web.httpcachepolicy.setomitvarystar(VS.80).aspx后来添加了方法作为解决方法。 开发人员应该使用它,但不幸的是,似乎很少有人知道上述方法。
作为响应,ASP.NET 4.0 中的行为发生了更改,详细信息请参见ASP.NET 4 重大更改列表 http://www.asp.net/LEARN/whitepapers/aspnet4/breaking-changes/#0.1__Toc256770157:

在 ASP.NET 1.0 中,一个错误导致指定 Location="ServerAndClient" 作为输出缓存设置的缓存页面在响应中发出 Vary:* HTTP 标头。这具有告诉客户端浏览器永远不要在本地缓存页面的效果。

在 ASP.NET 1.1 中,添加了 System.Web.HttpCachePolicy.SetOmitVaryStar 方法,您可以调用该方法来抑制 Vary:* 标头。选择此方法是因为更改发出的 HTTP 标头在当时被认为是潜在的重大更改。然而,开发人员对 ASP.NET 中的行为感到困惑,错误报告表明开发人员不知道现有的 SetOmitVaryStar 行为。

在 ASP.NET 4 中,我们决定解决根本问题。 Vary:* HTTP 标头不再从指定以下指令的响应中发出:

因此,不再需要 SetOmitVaryStar 来抑制 Vary:* 标头。

在页面上的 @OutputCache 指令中指定 Location="ServerAndClient" 的应用程序中,您现在将看到 Location 属性值的名称所隐含的行为 – 也就是说,页面将在浏览器中可缓存,而不需要您调用SetOmitVaryStar 方法。

如果应用程序中的页面必须发出 Vary:*,请调用 AppendHeader 方法,如下例所示:

HttpResponse.AppendHeader("变化","*");

或者,您可以将输出缓存位置属性的值更改为“服务器”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何缓存 ASP.NET 网站以获得更好的性能 的相关文章

随机推荐

  • scrapy python 请求未定义

    我在这里找到了答案 code for site in sites Link site xpath a href extract CompleteLink urlparse urljoin response url Link yield Re
  • 转换 Java -> Grails ... 如何加载这些属性?

    我正在将 Java Web 应用程序转换为 Grails 1 2 1 在我的 Java 应用程序中 我有一个从 properties 文件加载属性的单例 我已经看到我可以将其加载到 Config groovy conf 文件中 如果我的属性
  • 关闭应用程序后如何调试

    我正在尝试重现问题 这需要在特定位置关闭并重新打开我的应用程序 这是我的问题 1 如何查看我的日志 使用NSLog命令 当我的 iPhone 未连接到 XCode 时 2 是否可以将iPhone模拟器的特定位置 例如市中心 设置为默认位置
  • 是否可以在 Apple M1 计算机上安装 Weblogic 12.2.1.4?

    我一直在寻找有关这方面的信息 但没有找到任何信息 我认为 Oracle 站点上没有可用于在 Apple M1 设备上安装 Weblogic 12 2 1 X 的版本 但也许可以使用 Rosetta 2 来完成此操作 有人尝试过吗 我不能 因
  • 如何访问 gem5 线程统计信息?

    我希望在我的一些工作中使用 gem5 并且对其功能有一个非常普遍的问题 我的问题是 使用 gem5 我可以获得有关单个线程的行为 系统资源使用情况的统计信息 无论是 SE 还是 FS 模式 例如 如果我的应用程序中运行 2 个线程 我是否可
  • 为什么将未使用的返回值转换为 void?

    int fn void whatever void fn 是否有任何理由将未使用的返回值强制转换为 void 或者我认为这完全是浪费时间 David s answer https stackoverflow com questions 68
  • Tkinter 绑定 Mac OS“command+q”

    当我按 Command q 时 我试图 停止 根窗口退出 但这是不可能的 其他快捷键在我的 Mac 操作系统上有效 即使在 Windows Linux 中 Alt F4 绑定也可以 捕获 但在 Mac 操作系统中对我来说是不可能的 有任何想
  • Python“self”关键字[重复]

    这个问题在这里已经有答案了 我是 Python 新手 通常使用 C 最近几天开始使用它 在类中 是否需要在对该类的数据成员和方法的任何调用前添加前缀 因此 如果我在该类中调用方法或从该类获取值 我需要使用self method or sel
  • 监控 Java 应用程序上的锁争用

    我正在尝试创建一个小基准 在 Groovy 中 以显示几个同步方法上的高线程争用 当监控自愿上下文切换时 应该会出现高争用 在 Linux 中 这可以通过 pidstat 来实现 程序如下 class Res private int n s
  • 如何在RcppParallel中调用用户定义的函数?

    受到文章的启发http gallery rcpp org articles parallel distance matrix http gallery rcpp org articles parallel distance matrix 我
  • Melt() 函数复制数据集

    我有一个这样的表 id name doggo floofer puppo pupper 1 rowa NaN NaN NaN NaN 2 ray NaN NaN NaN NaN 3 emma NaN NaN NaN pupper 4 sop
  • 将响应式网格布局转换为 Plotly Dash

    我是一个非常活跃的 Dash 用户 我开始发现 Dash 使用中存在很多限制 并且我意识到有关如何将组件转换为 Dash 的信息 内容绝对有限 并且示例过时且非常简单 并且我对 Javascript 或 React 几乎没有任何了解 我完全
  • 字母尺度和随机文本上的马尔可夫链

    我想使用 txt 文件中的一本书中的字母频率生成随机文本 以便每个新字符 string lowercase 取决于前一个 如何使用马尔可夫链来做到这一点 或者使用每个字母都有条件频率的 27 个数组更简单 我想使用来自的字母频率生成随机文本
  • doxygen INSTALL 无法将文件“.../doxygen/build/bin/doxygen”复制到“/usr/local/bin/doxygen”

    解决了一些之后最初的问题 https stackoverflow com q 50986047 4120196在尝试让 doxygen 工作时 我在遵循以下步骤时偶然发现了下一个错误doxygen安装教程 http www doxygen
  • 来自用户定义文字的整数字符序列,以字符串作为参数

    目前 只有双精度数可以在用户定义的文字中生成字符模板 template
  • 没有 FPU 的处理器中的浮点计算

    是否可以在没有浮点单元的嵌入式处理器中执行浮点运算 是的 您只需要在软件中完成即可 你的编译器可能会提供支持 http gcc gnu org onlinedocs gccint Soft float library routines ht
  • 如何使用 MongoDB 实现 ASP.NET Core 3.1 Identity?

    是一个 API 用于简化后端和逻辑代码来管理用户 密码 个人资料数据 角色 声明 令牌 电子邮件确认等 对于 Visual Studio 来说 支撑脚手架 https learn microsoft com en us aspnet cor
  • 我可以使用 :hover 触发 CSS3 动画(或过渡),即使鼠标不再悬停,该动画也会继续运行

    我正在创建一个链接列表 其中一个链接容器在悬停时会展开 包含详细信息 图像和说明 我用 CSS 过渡或动画来制作动画没有任何问题 问题是我希望它即使在鼠标移开后也能保持展开状态 我想在没有 JavaScript 的情况下做到这一点 那可能吗
  • C# XML 反序列化。将节点中的所有内部文本读取到字符串属性中

    我目前正在尝试修改我的类 以便我的模型上的文本属性包含某个节点的所有内部文本 text node 给我带来问题的 xml 示例是
  • 如何缓存 ASP.NET 网站以获得更好的性能

    我是一名网页设计师 通常设计不需要更新的企业网站 所以我想将输出缓存一天 我怎样才能做到这一点 此外 任何有关在慢速服务器上提高 ASP NET 性能的建议都被接受 请注意 ASP NET 缓存有一个bug http connect mic