MassTransit IBusControl.StartAsync“代理无法访问”异常

问题描述 投票:0回答:1

我正在使用 MassTransit(版本 8.1.3)。我们有 2 个不同的 RabbitMQ 集群,到目前为止我一直在使用其中之一。一切都运转良好。现在,我已切换到不同的集群,我无法连接到 RabbitMQ 服务器,并且看到 Broker 无法访问异常。

我可以使用用户名和密码在浏览器上访问该网址,但无法通过代码访问该网址。

我怎样才能知道如何解决这个问题?您是否有任何文章可以解释为什么我可以通过浏览器进行连接,但不能通过我的代码进行连接?有没有文章可以解释我用来查看幕后情况的工具?关于这两个集群之间的差异,我需要向 DevOps 团队提出什么样的问题?

这是我的代码

创建总线 `IBusControl 总线控制 = Bus.Factory.CreateUsingRabbitMq(x => {

x.Host(new Uri(rabbitHost), h =>
{
    h.Username(rabbitUserName);
    h.Password(rabbitPassword);
});

x.ReceiveEndpoint(rabbitQueue,
    e =>
    {
        e.Consumer<MyConsumerClass>();
        e.Bind<MyConsumerClass>();
    }
    );

});`

巴士出发

    private static void StartBus(IBusControl bus)
{
    try
    {
        MessageSource.WriteLine(TestRunId, Guid.Empty, "Starting Bus", DeviceId, null);
        TaskUtil.Await(() => bus.StartAsync());
        MessageSource.WriteLine(TestRunId, Guid.Empty, "Started Bus", DeviceId,null);
    }
    catch (Exception ex)
    {
        MessageSource.WriteLine(TestRunId, Guid.Empty, $"StartBus faied", DeviceId,ex);
        throw ex;
    }
}

我尝试使用不同的用户。我本来希望我能进去,但我没有。

我尝试传递指定超时的取消令牌。

我尝试将 /userName 添加到网址末尾。

我尝试用这种方式更改主机和端口...

x.Host(url, port,"", h =>{
    h.Username(rabbitUserName);
    h.Password(rabbitPassword);
});
c# rabbitmq masstransit
1个回答
0
投票

我明白了为什么我无法连接......我的网址指定了 15672 端口。这是默认的 UI 端口,因此它解释了为什么我能够通过浏览器进行连接。端口 5672 是默认 API 端口。当我把它切换到5672时,它起作用了。

我原来的url没有指定端口,所以使用了默认的端口。

© www.soinside.com 2019 - 2024. All rights reserved.