【问题标题】:Sitecore Coveo Lost connection to RabbitMQ after rebuildSitecore Coveo 重建后失去与 RabbitMQ 的连接
【发布时间】:2016-01-15 02:45:25
【问题描述】:

我已经在本地主机上基本设置了 coveo 和访客连接到 RabbitMQ, 但是当我重建 sitecore 解决方案时,Coveo 失去了与 RabbitMQ 的连接, 我需要通过 Indexing Queue Connection 菜单手动连接。

   <!-- 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 coveo


    【解决方案1】:

    你的问题需要一点澄清,所以我会就多个问题给出答案。

    首先,不清楚您在哪里触发了重建操作。是来自 Sitecore Indexing Manager 还是来自队列源上的 Coveo Enterprise Search Administration Tool?重建操作应始终从 Sitecore Indexing Manager 触发。在 CES 管理工具中触发 Queue 源的重建是没有用的,因为它只是关闭到 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 控制面板配置向导(如索引队列连接配置向导)将无法将新值写入您的自定义配置文件。

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

    杰夫

    【讨论】:

    • 我有本地站点核心实例,它与本地 Coveo 实例一起工作,它接缝运行良好,但是当我进行部署时(是的配置文件通过部署替换)在站点核心的 coveo 诊断页面内部,我看到了RabbitMQ 连接是红灯。我将进入 sitecore 内部的 Sitecore Indexing Manager 并设置访客密码和登录名,然后 RabbitMQ 恢复运行(绿灯)。我只是想了解为什么在重建后关闭连接,以及如果密码应该在 Coveo.SearchProvider.config 中,如何存储密码
    • RijndaelEncryptionKeys 存在,但它有什么帮助?
    • 您的连接不会在重建操作中重置。当您使用无效的队列 uri、用户名和密码部署 Coveo.SearchProvider.config 文件时,它会被重置。在使用索引队列连接配置向导设置它们之后,您应该复制配置的 QueueUri、QueueUsername 和 QueuePassword 元素的值。然后将这些值放在源代码管理中的Coveo.SearchProvider.config 文件中。然后,下次部署此文件时,它将具有有效值,并且您的连接不会被重置。
    • 是的,你完全正确。我做到了,我将它添加到配置文件中,就像我的问题正文 amqp://localhost:5682/guestguest 和重建后连接丢失。 Coveo.SearchProvider.config 文件在网站下看起来很好......我不知道为什么连接丢失。但它在手动更新后开始正常工作。可能是 RijndaelEncryptionKeys 文件中的关键答案...
    • 您是否也有可能在部署时删除或覆盖RijndaelEncryptionKeys 文件?该文件用于写入和读取加密密码。如果文件系统上不存在该文件,则在需要读取或写入密码时将生成一个新文件。使用Indexing Queue Connection Configuration Wizard修复连接问题后,建议您将源代码管理中的RijndaelEncryptionKeys文件复制一份,并在每次部署配置文件时部署该文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 2015-08-26
    • 2011-06-30
    • 2022-07-07
    相关资源
    最近更新 更多