无法让 SSL 与 MassTransit 和 cloudamqp 一起使用

Can't get SSL to work with MassTransit and cloudamqp

我一直在努力弄清楚我应该如何配置 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 中,我也将其设置为允许 ampqs,我的 services/APIs 已设置,并且 运行 在 IIS 中使用 HTTPs 没有任何问题。

我怀疑我在这里遗漏了一些基本的东西,但我找不到关于它的任何文档。

这对我有用,注意必须指定端口。

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();