sitecore将项目从Web发布到master

时间:2016-06-03 13:57:25

标签: sitecore

我正在使用Sitecore Intranet Portal。我正在使用CD数据库。

如果用户更改了其电子邮件ID。我如何将其发布到master数据库。

我正在使用此代码将项目从web发布到master db。

// The publishOptions determine the source and target database,
// the publish mode and language, and the publish date
            var publishOptions =
              new PublishOptions(Database.GetDatabase("web"), Database.GetDatabase("master"),
                                                     PublishMode.SingleItem,
                                                     item.Language,
                                                     DateTime.Now);
            var publisher = new Publisher(publishOptions);

            // Choose where to publish from
            publisher.Options.RootItem = item;

            // Publish children as well?
            publisher.Options.Deep = true;

            // Do the publish!
            publisher.Publish();

知道正确的程序会很高兴。

4 个答案:

答案 0 :(得分:2)

从网络发布到掌握是一种不好的做法。

此类内容被命名为User Generated Content。我建议使用这种方法:

https://sitecore.unic.com/2015/07/16/user-generated-content-in-a-security-hardened-environment

或者您可以使用网络服务。这允许在CM实例中创作所有内容(甚至是用户生成的)。这使您可以利用平台的功能进行工作流程,发布等。

答案 1 :(得分:0)

使用外部数据库或将Sitecore用户用于特定域并将所有内容存储在核心数据库中。核心数据库通常在所有环境之间共享

答案 2 :(得分:0)

将用户信息存储在Core数据库中的最佳做法。 Sitecore使用ASP.NET成员身份来管理用户帐户。我建议您将所有用户信息存储在核心数据库中。

Sitecore不提供将数据从Web发布到主数据库的任何选项,但是,它为您提供了将数据从Web数据库传输到主数据库的选项。

查看我的博客Transfer Items from Web to Master Database,了解有关将数据从一个数据库传输到另一个数据库的详细信息

第1步:登录Sitecore桌面模式。

第2步:选择您需要转移项目的源数据库。如果要从Web传输到Master,请在右下角选择Web Database。

第3步:打开内容编辑器,然后选择您要转移的项目。

第4步:右键点击该项目,然后选择复制>>转移,然后点击转移按钮

步骤5:在“转移”窗口中,验证是否正确选择了源项目。

第6步:点击“下一步”继续。在此窗口中,首先要选择需要传输的目标数据库。第二件事是选择您需要放置此项目的父项目或目标文件夹。在我的例子中,我需要选择Layout,因为布局项中存在子布局。

第7步:点击下一步,您将在此处获得一个包含子项目的选项。如果您需要恢复子项,请选中该复选框,否则取消选中该框以仅传输所选项目。

步骤8:点击转移按钮,它将开始转移过程。传输完成后关闭对话框。

答案 3 :(得分:0)

您可以使用包将您的商品从网络转移到主网页。您可以按照以下步骤操作:

  1. 从网上创建您的商品包。

  2. 使用我开发的工具转换项目的目的地。也就是说,从web变为master。该工具位于Sitecore package modifier的市场上。

  3. 在master数据库上安装修改后的软件包。

  4. 另一个解决方案是创建一个计划作业,从Web创建包,修改它并将其安装在master数据库中。因此,无需人工干预。

    我更喜欢使用此方法而不是sitecore传输方法,因为如果要传输大量项目,传输方法会导致超时或导致错误。