CD 事件队列如何知道 WFFM 批准中的 Master? 8.2

How CD event queue knows about Master in WFFM approval? 8.2

CD 应该不知道 Master 因为 CD 有 Web 数据库。但在 WFFM 中,有时我们需要批准某些内容(例如:public 在 public 网站上进行审核)。此批准应转至 Master 以供内容发布者批准。

早些时候(8.0 之前)我们有 remoteWfmService 连接字符串。但是现在(使用 8.2.3)我们有事件队列。那么事件队列是如何了解Master DB的呢?下面给出我的答案和困惑。

  1. 启用/App_Config/Include/ScalabilitySettings.config 并提供publishing.publishingInstance 设置与CMS 的机器名-IIS 实例。正确吗?
  2. 但是仅通过启用配置就可以启用事件队列吗?我的意思是 8.2.3 中没有 EnableEventQueues 设置(switch/toggle)。
  3. 如果上述文件未启用,则从 webconfig(但在哪里?)
  4. 还有其他地方吗?

None 是我需要的。 在 CD 中,Sitecore.Forms.Config

<setting name="WFM.SharedDatabase" value="web" /> 

<setting name="WFM.MasterDatabase" value="web"/>

我从 https://doc.sitecore.net/cloud/81/azure/configuring_sitecore_azure/walkthrough_installing_wffm_on_sitecore_azure?roles=developer

那里得到了这个信息

ScalabilitySettings.config 显然没有用于此(我的仍然禁用)

这导致我的条目到达主数据库(从 CD)。但我仍然不确定它是如何到达那里的。或者尽管没有提供 "master" 连接字符串,但如何联系到主人?!另外一件奇怪的事情是 'web' 不是上面设置中提供的共享数据库。 'core' 是默认值,但在我的例子中,即使是核心也没有在 CMS 和 CD 之间共享。 CD 上的 Core + Web 和 CMS 上的 Core + Master 分开。

正如您已经提到的,WFFM 使用事件队列。

在内容交付服务器无法访问主数据库的扩展环境中。您需要将表单字段值传输到 CMS 服务器以处理 CMS 服务器上的远程保存操作。由于 Sitecore Web Forms for Marketers 8.0 rev.150224 (Update-2) 使用了 Sitecore EventQueue,在旧版本上使用了 "remoteWfmService" 网络服务。

它是关于来自 Sitecore 核心数据库的 EventQueue SQL 数据库 table。

重要的是 CM 使用与 CD 相同的核心数据库。或者至少同步 EventQueue table。您可以轻松识别 EventType 上的 WFFM 记录。

对于 Sitecore 8.1,我没有找到轻松自定义事件队列机制的方法。我假设 8.2

也一样

另请参阅:http://sitecore.stockpick.nl/english/wffm-and-secure-fields/ 了解数据提交流程的更多详细信息。