【问题标题】:EasyNetQ Field Not Found 'RabbitMQ.Client.ConnectionFactory.AutomaticRecoveryEnabled'未找到 EasyNetQ 字段“RabbitMQ.Client.ConnectionFactory.AutomaticRecoveryEnabled”
【发布时间】:2017-01-15 03:50:34
【问题描述】:

当我尝试创建这样的总线时,使用 EasyNetQ v0.63.0.448、RabbitMqClient v4.0.2 和 RabbitMq 服务器 3.6.5...

   bus = RabbitHutch.CreateBus(new ConnectionConfiguration()
            {
                Hosts = new[] { new HostConfiguration() { Host = hostName, Port = port } },
                UserName = username,
                Password = password,
            }, x => { }).Advanced;

我收到错误:

“未找到字段'RabbitMQ.Client.ConnectionFactory.AutomaticRecoveryEnabled'。”

这是 easynetq 和这个版本的 Rabbit 之间潜在的不兼容,还是我需要反映的 API 有变化?

【问题讨论】:

    标签: c# rabbitmq easynetq


    【解决方案1】:

    看起来那个版本的 EasyNetQ 是针对 RabbitMQ 的 3.6.0 版本编译的。在 RabbitMQ 的第 4 版中,AutomaticRecoveryEnabled 和 ConnectionFactory 中的一些其他字段已更改为属性,这是一个重大更改。

    在使用 RabbitMQ 版本 4 重新编译 EasyNetQ 之前,您必须使用旧版本的 RabbitMQ - 3.6.5 似乎对我有用。

    【讨论】:

    • 这为我解决了。 Nuget 自动更新了我的应用程序以使用不适用于我的应用程序的 RabbitMQ.Client 4.1.0。我回滚到 3.6.5,一切又好了。
    • 这很不幸,因为 4.1 版有一些重要的性能增强 (github.com/rabbitmq/rabbitmq-dotnet-client/issues/251)。
    猜你喜欢
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多