重建后 Sitecore Coveo 与 RabbitMQ 失去连接

Sitecore Coveo Lost connection to RabbitMQ after rebuild

我在本地主机上对 RabbitMQ 进行了 coveo 和来宾连接的基本设置, 但是当我重建 sitecore 解决方案时,Coveo 失去了与 RabbitMQ 的连接, 我需要通过索引队列连接菜单手动连接。

   <!-- Coveo search configuration -->
          <SearchCertificatePath>C:\CES7\Config\Certificates\cert-iis.p12</SearchCertificatePath>
          <SearchServiceUri>https://localhost:52810/7.0/CoveoSearchService</SearchServiceUri>
          <QueueUri>amqp://localhost:5682/</QueueUri>
          <QueueUsername>guest</QueueUsername>
          <EncryptDataOnQueue>false</EncryptDataOnQueue>

如何存储密码?

你的问题需要稍微澄清一下,所以我会给出多方面的答案。

首先,不清楚您在哪里触发重建操作。它是来自 Sitecore Indexing Manager 还是来自 Queue 源上的 Coveo Enterprise Search Administration Tool?重建操作应始终从 Sitecore Indexing Manager 触发。在 CES 管理工具中触发对队列源的重建是无用的,因为它只是关闭与 RabbitMQ 的读取连接并重新打开它。

您提到 Coveo 失去了与 RabbitMQ 的连接。是 CES 失去了读取排队消息的连接,还是 Sitecore 失去了将消息发送到 RabbitMQ 的连接,或者两者兼而有之?在每个 Sitecore 索引操作(重建索引、添加项目、修改项目、删除项目、发布...)中,Coveo for Sitecore 首先使用 Coveo.SearchProvider.config 文件中存储的 QueueUri、QueueUsername 和 QueuePassword 更新 CES 源。如果 CES 源配置确实更改,则 RabbitMQ 的读取连接将关闭并重新打开。然后,Coveo for Sitecore 连接到 RabbitMQ 并推送索引消息。

您提到您必须从索引队列连接配置向导中再次设置队列 uri、用户名和密码。在执行该操作之前,QueueUri、QueueUsername 和 QueuePassword 元素的值是什么?它们是否已经正确或已重置为默认值或错误值?它可能表明您的部署过程中存在问题。也许 Coveo.SearchProvider.config 文件会定期被这些元素的错误值覆盖。

最后,Coveo for Sitecore 以加密形式直接将 Queue 和 Sitecore 密码存储在 Coveo.SearchProvider.config 文件的 QueuePassword 和 SitecorePassword 元素中。密码使用在您的 Sitecore 实例 \Data\Coveo\ConfigurationEncryptionKeys 文件夹中生成的密钥进行加密。您应该检查该文件夹中是否存在 RijndaelEncryptionKeys 文件。

如果您将 Coveo for Sitecore 配置移动到另一个配置文件,Sitecore 控制面板配置向导(如索引队列连接配置向导)将无法将新值写入您的自定义配置文件。

我希望这能回答您的问题并解决您的问题。

杰夫