【问题标题】:Sitecore Publishing Problems and determining item stateSitecore 发布问题和确定项目状态
【发布时间】:2015-03-05 10:11:11
【问题描述】:

谁能向我解释每个数据库中健康的站点核心实例的数据应该处于什么状态?

例如: 我们目前在 2 台服务器设置中发布时遇到问题。 我们的登台服务器托管 SQL 实例和 sitecore 的创作/登台实例。 然后,我们有第二台服务器来托管我们公司网站的生产网站。

当我查看主数据库时,PublishQueue 表中充满了条目,而 Web 数据库中的同一个表是空的。

这是正确的吗?

目前没有多少点击发布按钮会改变这一点。

如何确定项目在暂存环境和生产环境中的状态,而无需在我真的没有时间的 sitecore API 之上编写应用程序?

【问题讨论】:

  • 您要确定什么?项目是否已发布?您可以使用Published Item Comparer 模块,但它可能需要针对 SC 7.2 进行更新
  • SC 如果我去生产并查看实时站点没有显示某些项目,如果我然后将 ?sc_mode=edit 添加到链接并在页面编辑器中查看项目,它会报告该项目已发布。所有发布工具也反映了这一点……我试图通过确定数据是否处于正确状态来了解为什么/如何进入这种情况。
  • 似乎有些不对劲。如果您确定项目可发布,请尝试通过对父项目 + 子项目执行“重新发布 - 发布所有内容”来强制它。此外,请检查所有服务器(inc DB)上的时钟设置,并确保它们全部同步且时区匹配。
  • 检查丢失的项目是否在网络数据库中,如果在那里你可能有缓存问题?,检查网站名称被添加到发布:结束和发布:结束:远程web.config 在发布后刷新缓存。

标签: sitecore sitecore7.2


【解决方案1】:

这是 Web 数据库的发布队列为空的正常行为。原因是在主数据库上进行了更改,这将在发布队列中添加一个条目。

发布后,该项目不会从发布队列表中删除。 CleanupPublishQueue 的工作是清理发布队列表。

【讨论】:

    【解决方案2】:

    一般来说,两个数据库之间的表会有所不同,因为它们用于不同的目的。您的主数据库通常由作者和发布逻辑连接,而 Web 数据库通常用作存放应该可见的最新发布版本的内容的地方。

    在调试发布方面,从 Sitecore 桌面,您可以在右下角的“master”和“web”数据库之间切换,并使用内容编辑器检查任何单个项目。这对于抽查单个项目是否已成功发布很有用。

    如果“web”中缺少某个项目,或者“web”中的版本错误,您应该检查以下内容:

    1. 项目的发布限制:是否对项目或版本应用了限制,阻止其在此时发布?
    2. 工作流状态:项目/版本是否处于最终批准的工作流状态?您可以使用工作箱快速检查需要批准的项目。
    3. 连接字符串:您的暂存系统连接字符串是否设置为连接到生产交付服务器使用的正确“网络”?

    【讨论】:

    • 我去了数据库,因为基于 shell 的应用程序没有给我我需要的信息,例如发布设置下的内容编辑器告诉我项目在它们明显没有时发布,所以我想也许db 知道 GUI 不知道的东西并四处寻找。还会记录所有显示成功的发布事件。
    【解决方案3】:

    数据库表 [PublishQueue] 是一个存储所有保存和其他变更的表。此表由增量发布使用。 Sitecore 从 PublishQueue 表中获取比上次增量发布日期最近修改的所有项目。完全发布不使用 PublishQueue 表

    所以这个表包含很多关于Master的记录是可以的。 Web 数据库具有相同的数据库方案。 (数据不一样,web只包含一个item的一个版本,优化性能)web上的PublishQueue是Empty这是正常的。

    要知道一个项目的状态,将主版本与网页版本进行比较,可以有多个网页数据库,主数据库不知道网页数据库的状态/版本

    【讨论】:

    • 您说:“Sitecore 从 PublishQueue 表中获取比上次发布日期更近修改的所有项目”,但在主数据库中显然不是这种情况......发布此表包含大量数据。
    • 本文描述了 PublishQueue link 取决于发布类型,增量、智能、完整或使用 PublishQueue 或不使用的项目publishing-modes
    • 我不想靠近 sitecore API,PublishQueue 表似乎不仅仅包含发布队列中的项目......我有已发布的项目(例如发布编辑器从未被点击过)在该表中。我正在尝试了解哪些站点核心存储在哪里以及为什么存储。
    • 我的意思是从未发表过。
    • 正确,PublishQueue 表可以包含从未发布过的项目。 (它说这个项目在未来运行的增量发布作业中被更改,使用它来获取更改)
    猜你喜欢
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    相关资源
    最近更新 更多