Не удается получить SSL для работы с MassTransit и cloudamqp - PullRequest
0 голосов
/ 12 марта 2019

Я изо всех сил пытался выяснить, как я должен настроить MassTransit и наш новый выделенный экземпляр cloudamqp для работы с SSL (примечание: все работает без SSL нормально).

Я попытался добавить строку UseSsl в коде ниже, который я нашел в какой-то старой документации, но это не сработало:

var bus = Bus.Factory.CreateUsingRabbitMq(sbc =>
          {
              var host = sbc.Host(new Uri(messageBusConfiguration["Host"]), h =>
              {
                   h.Username(messageBusConfiguration["Username"]);
                   h.Password(messageBusConfiguration["Password"]);
                   h.UseSsl(s => {});
               });
            });

В cloudamqp я также настроил его на использование ampq, и мои службы / API настраиваются и работают в IIS с использованием HTTP без каких-либо проблем.

Я подозреваю, что мне здесь не хватает чего-то фундаментального, но я не могу найти никакой документации по этому вопросу.

1 Ответ

1 голос
/ 12 марта 2019

Это работает для меня, обратите внимание, что порт должен быть указан.

var busControl = Bus.Factory.CreateUsingRabbitMq(x =>
{
    var host = x.Host(new Uri("rabbitmq://wombat.rmq.cloudamqp.com:5671/your_vhost/"), h =>
    {
        h.Username("your_username");
        h.Password("your_password");

        h.UseSsl(s =>
        {
            s.Protocol = SslProtocols.Tls12;
        });
    });

    x.ReceiveEndpoint(host, "input_queue", e =>
    {
    });
});

await busControl.StartAsync(new CancellationTokenSource(TimeSpan.FromSeconds(30)).Token);

await busControl.StopAsync();
...