【问题标题】:Sitecore 8.0 Publish Issue on CDNSitecore 8.0 在 CDN 上发布问题
【发布时间】:2016-02-23 16:28:41
【问题描述】:

我们有两个用于 CMS 和 CDN(生产)的实例设置。

升级到 Sitecore 8.0 后,从 CMS 发布内容时,CDN 服务器中的缓存不会清除。因此,当内容发布时,Live 站点上的内容是空白的,我们必须清除 http://cdnserver.com/sitecore/admin/cache.aspx 上的缓存。

发布事件触发时,Sitecore 似乎没有清除缓存。

有什么办法吗??

======== 更新 ========

我们默认只使用“网站”。

【问题讨论】:

    标签: caching sitecore publish sitecore8


    【解决方案1】:

    要清除缓存,您需要在配置文件中添加下一个事件

    <event name="publish:end">
        <handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
          <sites hint="list"><site>website</site>
           <site>website</site>
           <site>SITE1</site>
           <site>SITE2</site>
          </sites>
        </handler>
    </event>
    <event name="publish:end:remote">
        <handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
          <sites hint="list"><site>website</site>
           <site>website</site>
           <site>SITE1</site>
           <site>SITE2</site>
          </sites>
        </handler>
    

    您也可以查看扩容指南文档https://sdn.sitecore.net/upload/sitecore7/70/scaling_guide_sc70_a4.pdf。文档适用于 Sitecore 7,但仍然适用于 Sitecore 8 和 Sitecore 8.1 没错,Sitecore 不会回收应用程序池,因为重新启动应用程序池后需要 30 多秒才能重新启动。

    【讨论】:

    • 嗨,“Site1”和“Site2”是什么意思?支持我们有用于 CMS 的 test.com 和用于 CDN 的 live.com。另外,我找不到这个事件的位置。与 7.5 及以下版本不同,我在 web.config 文件中找不到它。
    • 请阅读扩展指南,site1 和 site2 是站点定义中的站点。
    • 只有在不使用默认 website 或用于多站点实例时才需要这些。
    • @jammykam 我们只使用默认的“网站”。
    • @Craig 他提到的是 Sitecore 8 而不是 8.1
    【解决方案2】:

    我之前在升级到 Sitecore 7.5 时看到过这种情况,在 8 上可能会发生同样的情况。

    在我的情况下,问题是索引文件已损坏或访问问题。日志中也没有关于此的内容。并且重新索引并不能解决问题。在 IIS 重置后,我可以在清除缓存的情况下成功发布,大约 5 分钟后,新发布不会清除缓存,因为进程是静默崩溃。

    从 \Data\indexes 目录中删除所有文件。并检查访问权限。然后再试一次。

    还要检查错误日志文件。如果没有帮助,请查看 Web 数据库中的 EventQueuePublishQueue SQL 表。见 Publish Queue, History and Event Queue too big

    【讨论】:

    • Jan,你说的是删除索引文件的CM还是CD?每当我们从 CM 发布内容时,CM 中的索引文件正在更新,但 CD 中的文件不会更新。
    • CD 服务器。您还可以检查 Web 数据库中的 [EventQueue] 表。在这个 SQL 表中,最好有少于 1000 条记录。并在发布后添加了记录。使用这些记录,CD 服务器知道有一个发布事件,并且应该重新构建索引并清除缓存。
    【解决方案3】:

    首先 - Sitecore 在发布时不会回收应用程序池。它远程清除这些服务器上的缓存。

    正如 Sitecore Climber 所暗示的,您需要确保您的站点名称(这些是您在站点定义配置中设置的站点)列在 publish:endpublish:end:remote 事件中。

    您还需要确保已设置发布实例和实例名称。默认值采用机器名称,但我已经看到这失败了很多次。手动配置这些更安全。它们设置在ScalabilitySettings.config 中,位于您的/App_Config/Include 文件夹中。它可能会有一个.disabled 的文件后缀,只需删除该部分即可启用它。

    还要检查您是否已关注Scaling Guide 并启用了远程发布的所有功能。

    【讨论】:

      猜你喜欢
      • 2015-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多