【问题标题】:C# Method - Publish Entire Sitecore SiteC# 方法 - 发布整个 Sitecore 站点
【发布时间】:2014-02-11 20:27:29
【问题描述】:

我有一个奇怪的要求。我想知道是否可以让您的 C# 解决方案文件将整个站点从主数据库发布到 Web 数据库。我在我的开发环境中,并且随着我与多人一起工作,Sitecore 中的项目数量每天都在变化。这不是用于生产内容管理或内容交付的东西。纯开发。

是否可以在 C# 中触发完整的站点发布,就像在内容编辑器中按下发布按钮一样?代码会是什么样子?

/sitecore/shell/Applications/Publish.aspx

我假设这个 C# 方法可以与 Sitecore.Publishing.PublishManager 一起使用?

谢谢!

【问题讨论】:

  • 你真的需要在 dev 中发布吗?我总是将我的开发实例设置为指向主数据库而不是 Web,因此无需发布以预览每个更改。
  • 正如@mdresser 所说,默认安装/app_config/include 文件夹中有一个示例livemode.config。您还可以启用 PublishAgent 以特定时间间隔运行以进行完整发布 sitecorebasics.wordpress.com/2011/05/17/…
  • @mdresser 我们的开发实例现在有一些工作流内容与我们与 SQL Server 和 Oracle 实例的通信集成。在我们设计 Sitecore 站点时,我们有员工致力于 Oracle 集成。我们只能指向 Master,但我们无法开发我们的工作流程步骤。

标签: c# asp.net visual-studio-2012 sitecore sitecore7


【解决方案1】:

我们也在我们的项目中使用它... 我们将其放置在常规的 .aspx 页面中。希望对您有所帮助:

protected void Page_Load(object sender, EventArgs e)
{
    PublishMode publishMode = PublishMode.Full;

    using (new Sitecore.SecurityModel.SecurityDisabler())
    {
        var webDb = Sitecore.Configuration.Factory.GetDatabase("web");
        var masterDb = Sitecore.Configuration.Factory.GetDatabase("master");

        try
        {
            foreach (Language language in masterDb.Languages)
            {
                //loops on the languages and do a full republish on the whole sitecore content tree
                var options = new PublishOptions(masterDb, webDb, publishMode, language, DateTime.Now) { RootItem = masterDb.Items["/sitecore"], RepublishAll = true, Deep = true };

                var myPublisher = new Publisher(options);
                myPublisher.Publish();
            }
        }
        catch (Exception ex)
        {
            Sitecore.Diagnostics.Log.Error("Could not publish", ex);
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多