0

我正在尝试使用来自 c# 中的队列使用者的SignalR.RabbitMQ ( https://github.com/mdevilliers/SignalR.RabbitMq ) 使用 RabbitMQ 消息传递,代码如下:

RabbitMQ.Client.ConnectionFactory factory = new RabbitMQ.Client.ConnectionFactory();
factory.UserName= "username";
factory.Password="password";
factory.HostName="host.name.com";
factory.VirtualHost = "VirtualHost";
factory.Port = 5672;

var exchangeName = "SignalR.Messages";

var configuration = new RabbitMqScaleoutConfiguration(factory, exchangeName);
                            GlobalHost.DependencyResolver.UseRabbitMq(configuration);
var hubContext = GlobalHost.ConnectionManager.GetHubContext<Chat>();

但不幸的是,失败了:

var configuration = new RabbitMqScaleoutConfiguration(factory, exchangeName);

出现错误:

"Field not found: 'RabbitMQ.Client.ConnectionFactory.VirtualHost'."

相同的连接在控制台应用程序上工作正常。如果我删除 VirtualHost 仍然会给出同样的错误。

不知道出了什么问题。在这里发现了同样的错误:https ://github.com/MassTransit/MassTransit/issues/204但对我没有帮助。我使用 EasyNetQ 的最新版本(0.40.3.353)和 RabbitMQ 客户端的最新版本(3.4.3)

4

1 回答 1

2

对我有用的解决方案是使用旧版本的 rabbitmq.client install-package RabbitMQ.Client -version 3.1.5 调用的

希望这可以帮助某人

于 2015-01-28T20:10:22.890 回答