Sitecore WFFM CD 提供 "Could not find configuration node: databases/database[@id='master']"

Sitecore WFFM CD gives "Could not find configuration node: databases/database[@id='master']"

CMS 中的 Sitecore WFFM 页面(连接到 Master)有效。 在 CD 中,所有页面都有效,但是当我们进入 WFFM 页面时,我们得到错误 找不到配置节点:databases/database[@id='master'] CD 中的 WFFM 似乎正在研究 Master。在连接字符串中没有 master,因为它是 CD。 我认为此配置导致问题 (Sitecore.Marketing.Definitions.MarketingAssets.Repositories.config)。我是否遗漏了部署到 CD 的任何步骤?

此错误显示在页面(部分)中:

Sitecore.Configuration.DefaultFactory.CreateObject(String configPath, String[] parameters, Boolean assert) +615 Sitecore.WFFM.Abstractions.Dependencies.DependenciesManager.Resolve(String path) +24 Sitecore.Form.Core.Ascx.Controls.SimpleForm..ctor() +26 Sitecore.Form.Web.UI.Controls.SitecoreSimpleForm..ctor(Item item) +21

这取自错误日志

Exception: System.InvalidOperationException Message: Could not find configuration node: databases/database[@id='master'] Source: Sitecore.Kernel at Sitecore.Configuration.DefaultFactory.GetConfigNode(String xpath, Boolean assert) at Sitecore.Configuration.DefaultFactory.CreateObject(String configPath, String[] parameters, Boolean assert) at Sitecore.Configuration.DefaultFactory.GetDatabase(String name, Boolean assert) at Sitecore.Configuration.DefaultFactory.GetDatabase(String name) at Sitecore.Marketing.Definitions.Goals.Data.ItemDb.GoalDefinitionItemRepository..ctor(String databaseName, Boolean assumeActive, IDefinitionRecordMapper`1 mapper) at Sitecore.Marketing.Definitions.Goals.Data.ItemDb.GoalDefinitionItemRepository..ctor(String databaseName, Boolean assumeActive)

在 CD 环境中启用 SwitchMasterToWeb.config 配置补丁文件。此文件通过从 Sitecore 配置文件中删除对主数据库的任何引用来帮助简化 Sitecore CD 实例的设置。

要启用 SwitchMasterToWeb.config 文件,请将其重命名为具有“.config”扩展名。

重命名 SwitchMasterToWeb.config 文件或包含该文件的文件夹也是一个好主意,以便在包含对 Master 数据库的引用的任何其他包含文件之后应用它。例如。将其移动到 App_Config/Include 文件夹中的 "zzz" 文件夹中。

  1. 确保完成:(取自官方安装指南) 内容交付 (CD) 服务器的额外步骤 WFFM:

将"Web Forms for Marketers CD 8.2 rev.170413.zip"文件的内容复制到网站根目录 在所有 CD 服务器上,在 \Website\App_Config\Include\Sitecore.Forms.Config 文件中,删除或禁用以下部分: 在部分中,删除: 在部分中,删除:

将以下节点添加到该部分:

 <setting name="WFM.IsRemoteActions" value="true" />Make sure this setting is set as follows. <setting name="WFM.MasterDatabase" value="web" />
  1. SwitchMasterToWeb.config 这可能需要定制。所以首先你需要检查日志文件。在我们的例子中,我们发现 SwitchMasterToWeb.config 中没有添加一些 "master" 引用,所以我们不得不添加它(这样 master 就变成了 web)。有些人直接联系 Sitecore,Sitecore 为他们定制了它。作为给定 here