【发布时间】: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