sitecore发布后网站未更新

时间:2013-09-19 21:05:24

标签: sitecore sitecore6 sitecore-workflow

我已将Sitecore安装设置到两个不同的IIS站点。一个包含所有Sitecore Admin文件,另一个包含共享相同Web.config的干净Web文件,而我的Data文件夹在两个文件夹之外。

-Sitecore.Data - 诊所和日志 -Sitecore.Admin --Sitecore(带文件的文件夹) -Sitecore.Web --html,css和js文件

我遇到的问题是,在我从Sitecore.Admin文件夹发布后,除非我为Sitecore.Web回收了应用程序池,否则Sitecore.Web不会随更改一起更新。我尝试以编程方式添加用于回收应用程序池的任务,但没有成功。

    <processor type="MySite.Sitecore.Publishing.IISReset, MySite.Sitecore" />

有关如何将更改从一个IIS节点传播到另一个IIS节点的任何建议。我认为问题是,HtmlCacheClearer是针对Sitecore.Admin节点运行的,而不是针对另一个节点运行的。

4 个答案:

答案 0 :(得分:6)

您需要启用EventQueues。

EventQueues将不同的事件传播到前端服务器,如发布,项目保存等。

基本上你需要重命名配置文件。

/App_Config/Include/ScalabilitySettings.config.example to ScalabilitySettings.config

该配置文件启用事件队列和其他一些配置。

我建议您阅读Sitecore Scaling指南。

http://sdn.sitecore.net/Reference/Sitecore%206/Scaling%20Guide.aspx

答案 1 :(得分:2)

就像dunston所说,确保ScalabilitySettings.config文件配置正确

  • 启用EventQueue
  • 确保Content Delivery服务器上的实例名称对于每台服务器都是唯一的,例如'MachineName-CD1,MachineName-CD2'。

并确保在PublishEnd:Remote事件中为您的网站名称添加了HtmlCacheClearer事件。

答案 2 :(得分:1)

除了启用像dunston这样的事件队列之外,还要确保将您的网站名称添加到publish:end和publish:end:远程HtmlCacheClear事件,如果您使用的是其他站点,则默认为“website”,否则为Html发布后,缓存不会被清除。

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

答案 3 :(得分:0)

通过发布,听起来您可能正在谈论部署新代码,并且您希望它能够在多个Web服务器上重启应用程序池,无论如何?如果是这种情况,您可以将这样的内容添加到您构建的Publishing.IISReset的逻辑中。它可以连接到各种面向公众的实例,并执行以下操作:

appcmd recycle apppool sitecore6

这显然会在这些盒子上重启Sitecore并导致所有缓存完全重置,毫无疑问。