【问题标题】:Enable output caching for default ASPX page in a Sitecore-enabled ASP.NET website?在启用 Sitecore 的 ASP.NET 网站中为默认 ASPX 页面启用输出缓存?
【发布时间】:2012-05-19 10:09:21
【问题描述】:

我在我的支持 Sitecore 的 ASP.NET 站点中启用输出缓存,方法是将其放入我的 default.aspx(位于 CMS 之外):

<%@ OutputCache Duration="300" VaryByParam="None" %>

在我的 Web.config 中:

<setting name="DisableBrowserCaching" value="false" />

这在我直接点击我的页面时有效,如在 http://[website]/default.aspx 中,但在我浏览到根站点 http://[website]/ 时无效。在这种情况下,它总是返回 200 响应,而不是重复请求时返回 304(未修改)。

我在一个不使用 Sitecore 的网站上进行了相同的尝试,并且缓存适用于 IIS 7 和 Sitecore 6.4.1 下的所有实例。

如何为启用 Sitecore 的站点中的默认(无扩展)ASP.NET 页面启用输出缓存?

更新:
似乎在我的本地机器上工作(这个问题在我们的 QA 环境中),我能看到的唯一区别是我有 IIS 7.5 而不是 7.0,但相同的 web.config 和 Sitecore 实例。

另外,我创建了另一个测试页面 (http://[website]/Test/default.aspx),它表现出相同的行为,因此受影响的不仅仅是根。

更新 2:
坏消息 - Sitecore 已确认输出缓存为 not officially supported

“Sitecore CMS 并非设计用于在 IIS 中启用用户模式或内核模式输出缓存,因此不支持其使用。”

这并不能解释为什么它有时适用于特定的 URL 和环境,我仍然希望有一个解决方法。

【问题讨论】:

  • re:“更新”(第一个)您的行为差异是否可能是由于集成模式与经典模式应用程序池?
  • Paul - 两个应用程序池都集成了 v4.0

标签: asp.net iis-7 sitecore outputcache


【解决方案1】:

我进行了快速测试,看起来将 DisableBrowserCaching 设置为 false 并将 OutputCache 指令添加到 aspx 布局文件工作正常。

对,响应码是200 OK,但是页面是从浏览器的缓存中获取的(不是从服务器获取的)。响应代码 304 表示有一个对服务器的调用,并且服务器回答说没有任何改变。

能否再次检查页面的代码是否在服务器端执行?

【讨论】:

  • 我在 Fiddler 中看到一个 GET 请求,对根站点有 200 响应,我可以看到每次都从服务器返回完整响应。无法在我们的 QA 环境中附加到代码。我将更新问题以反映我的发现...
【解决方案2】:

如果使用 sitecore,您需要将指令放入每个布局 (.aspx) 文件中,以便演示设置始终是这些布局之一。

<%@ OutputCache Duration="300" VaryByParam="None" %> 

如果您的主页使用不同的布局减去指令,它可能会解释这种行为。

除此之外,使用 Sitecore 的内置缓存方法可能会更好。

【讨论】:

  • 谢谢,但我的 default.aspx 只是一个位于 CMS 之外的普通 ASP.NET 页面,因此不使用任何 Sitecore 布局文件。这只是 Sitecore 模块安装在 IIS 中导致问题的事实(我认为)。
  • 啊,对。在这种情况下,您可能会在让 Sitecore 放弃根 URL 方面遇到困难。您可以在 sitecore web.config 中配置“忽略的 url 前缀”,这将告诉 Sitecore 忽略以已知前缀开头的 url,但不是相反,如果 Sitecore 忽略所有地方,您就无法将“/”添加到前缀列表中...
【解决方案3】:

您需要在 web.config 中的公共站点上启用缓存:

<Sites>
  <site name="website" cacheHtml="true" ... />

通常输出缓存在组件级别工作,并在演示文稿的 Sitecore 中进行配置。

【讨论】:

  • 我已经有了那个设置,完整的配置:
猜你喜欢
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-16
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
相关资源
最近更新 更多