Kentico输出缓存问题 - 内容无法更新

时间:2015-04-09 03:41:52

标签: caching kentico

我正在使用Kentico网站,我对页面输出缓存有疑问。

我们有一个自定义webpart,它从Bizform的记录数据中加载记录并在页面中显示这些数据。问题是,经过多次尝试,我们无法弄清楚为什么webpart无法从bizfrom数据中获取最新数据的问题,我们怀疑这是因为输出缓存。

我们试图:

  • 在webpart配置中禁用webpart输出缓存
  • 在CMSDesk中禁用页面输出缓存>一般>输出缓存
  • 在“设置”中禁用网站输出缓存>系统>性能
  • 禁用用户模式和内核缓存的IIS缓存
  • 为cms.form | byid |创建缓存依赖项触摸键(我发现当前的kentico版本不支持)
  • 然后尝试创建事件处理程序以在bizform插入事件上添加触摸的键

我们遇到类似的问题购物车Mini预览Webpart Ecommerce.CurrentContext.CurrentShoppingCart返回不同的服务处理程序结果(.ashx - 获取更新)和webpart(.ascx - 不得到更新)

如果您遇到过这些问题,请提供帮助。

2 个答案:

答案 0 :(得分:1)

可以缓存它的最后一个地方是内容缓存。它可以在Settings->System->Performance中设置,也可以在System settings部分下的Web部件级别设置。 只有使用内容缓存的Web部件才能使用此部分。 (例如,一些转发器和数据源Web部件。)它可能有点令人困惑,因为有两个部分(System settingsPerformance),您可以在其中影响缓存。但是,Performance部分用于设置Partial output cache

无论如何,您一定要尝试检查Cache debug以查看实际缓存的内容。

其他资源:

答案 1 :(得分:0)

我最近遇到了类似于第二个问题(使用Shopping Cart Mini Preview Webpart)。仅使用Web服务(.asmx)而不是HTTP处理程序。在我的案例中,通过将所有CRUD Web服务方法的 WebMethod 属性的 EnableSession 属性设置为 true 来解决问题。

[System.Web.Services.WebMethod(EnableSession = true)]

所以我认为问题在于处理程序应该能够访问当前的Session。 如果是HTTP处理程序,您可以尝试在处理程序声明中添加 IRequiresSessionState ,以将其附加到会话中。

我也在使用Kentico 8,我看到你的Kentico版本更老了。这可能也有影响,但我不确定。