asp.net - Sitecore 内容交付服务器未清除缓存

标签 asp.net .net caching sitecore sitecore6

当从内容创作服务器到内容交付 Web 数据库的发布不会刷新内容交付服务器的缓存时,我们的团队遇到了问题。

我们有一个内容创作服务器,其中包含主数据库、核心数据库和 Web 数据库。我们还有一个内容交付服务器,它有自己的主服务器、核心服务器和网络。我们有两种发布选项。将发布到内容创作网络数据库。另一个将发布到内容交付服务器的网络数据库。

我的问题:

1) 内容创作服务器上的发布如何知道清除内容交付服务器上的缓存?

在我们的站点定义文件中,我们定义了两个名为“publish:end”和“publish:end:remote”的事件。我们在此处附加的方法是 type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel", method="ClearCache"

2)“publish:end”和“publish:end:remote”有什么区别?

我们为每个环境都有单独的站点定义文件。一种用于内容创作服务器,另一种用于内容交付服务器。由于向内容交付服务器的 Web 数据库的发布发生在内容创作服务器上 - 人们会假设它正在使用内容创作服务器的站点定义文件中声明的事件。

3) 我们可以将“内容交付站点”添加到内容创作站点定义中,然后将它们添加到“publish:end”和“publish:end:remote”事件声明中吗?

4) 是否需要将它们添加到其中一个或两个中?

5) 当内容创作网站提取“publish:end”和“publish:end:remote”配置中的网站列表时,它到底会做什么?

最佳答案

正如 Ruud 提到的,Sitecore 扩展指南将帮助您解决很多问题。

首先要检查的是您是否将 EnableEventQueues 设置为 true。这将确保您的分布式节点正在主数据库中查找事件。

要查找的第二件事是确保指定了实例名称,以便内容交付节点知道要查找哪些事件。这些设置是InstanceNamePublishing.PublishingInstance。您的创作节点在两者中将具有相同的值,但您的交付节点应在 PublishingInstance 设置中具有创作节点名称。

最后,这可能只是我,从你的问题来看,你有两个核心数据库和两个主数据库?我不确定为什么您的交付节点需要自己的核心和主数据库,除非您正在复制。根据我的理解,核心数据库中的 EventQueue 表是所有实例用来相互传递事件的表。确保您的交付和创作能够以某种方式“共享”EventQueue 表,方法是使用相同的 Core DB,或者将您的创作核心复制到交付实例。

在这三件事和 Sitecore Scaling 指南之间,您应该能够让您的交付实例监听创作中的发布事件。

关于asp.net - Sitecore 内容交付服务器未清除缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22054027/

相关文章:

asp.net - ASP.Net 的首选数据库连接

c# - 为什么我的操作没有在 ASP.NET MVC 4 Web 应用程序中被调用?

C# 根据多个值过滤 excel 列

c# - 使用子域时使用 EADDRINUSE

caching - 我如何使用缓存控制和 ETag 来设置 http header

c# - 如何在 ListView 中拆分Container.DataItem字符串

c# - 导出到 Excel 电子表格 (XLSX) 失败

c# - Azure 移动服务 - 通过自定义参数传递数组

java - Google App Engine - 有什么方法可以进行异步内存缓存设置吗?

.net - WCF ConcurrencyMode.Multiple连接最佳实践和缓存