代码之家  ›  专栏  ›  技术社区  ›  Ben Thomson

无法让SSL与MassTransit和CloudAMQP一起工作

  •  0
  • Ben Thomson  · 技术社区  · 6 年前

    我一直在努力弄清楚如何配置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使用https在iis中安装和运行,没有任何问题。

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

    0 回复  |  直到 6 年前
        1
  •  1
  •   Chris Patterson    6 年前

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

    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();
    
    推荐文章