Я пытаюсь заставить работать сервер RabbitMQ. Подключение к локальному хосту не было проблемой с руководством. Но всякий раз, когда я пытаюсь сделать то же самое через сеть, я не могу заставить приложение подключиться к брокеру.
Send:
var factory = new ConnectionFactory() { };
factory.HostName = "192.168.1.52";
factory.Port = 5672;
factory.UserName = "guest";
factory.Password = "guest";
factory.VirtualHost = "/";
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
string message = "Hello World!";
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "",
routingKey: "hello",
basicProperties: null,
body: body);
Console.WriteLine(" [x] Sent {0}", message);
}
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
Экземпляр RabbitMQ работает на другом P C с IP-адресом 192.168.1.52. Порт по умолчанию, используемый RabbitMQ, - 5672, и я еще не изменил имя пользователя или пароль, поэтому они все еще остаются гостями и гостями.
Recieve:
var factory = new ConnectionFactory() { };
factory.HostName = "192.168.1.52";
factory.Port = 5672;
factory.UserName = "guest";
factory.Password = "guest";
factory.VirtualHost = "/";
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);
};
channel.BasicConsume(queue: "hello",
autoAck: true,
consumer: consumer);
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
Обе программы выдают исключение :
Возникло исключение: 'RabbitMQ.Client.Exceptions.ConnectFailureException' в RabbitMQ.Client.dll при запуске программы
, но это не не нарушать нить. Через некоторое время угроза завершается со следующей ошибкой:
ExtendedSocketException: попытка подключения не удалась, потому что подключенная сторона не ответила правильно после определенного времени, или не удалось установить соединение, так как подключенное соединение хозяин не ответил. 192.168.1.52:5672