我正在尝试使用来自 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)