我正在使用Kentico网站,我对页面输出缓存有疑问。
我们有一个自定义webpart,它从Bizform的记录数据中加载记录并在页面中显示这些数据。问题是,经过多次尝试,我们无法弄清楚为什么webpart无法从bizfrom数据中获取最新数据的问题,我们怀疑这是因为输出缓存。
我们试图:
我们遇到类似的问题购物车Mini预览Webpart 与Ecommerce.CurrentContext.CurrentShoppingCart
返回不同的服务处理程序结果(.ashx - 获取更新)和webpart(.ascx - 不得到更新)
如果您遇到过这些问题,请提供帮助。
答案 0 :(得分:1)
可以缓存它的最后一个地方是内容缓存。它可以在Settings->System->Performance
中设置,也可以在System settings
部分下的Web部件级别设置。
只有使用内容缓存的Web部件才能使用此部分。 (例如,一些转发器和数据源Web部件。)它可能有点令人困惑,因为有两个部分(System settings
和Performance
),您可以在其中影响缓存。但是,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版本更老了。这可能也有影响,但我不确定。