问题描述
我在 docker 容器中运行 RabbitMQ,需要从 Rebus 访问它,Rebus 也在运行,但在单独的 Docker 容器中。我使用的是 host.docker.internal 而不是 localhost。我的 RabbitMQ 容器在端口 5673 上,因此我将其设置为 Rebus 传输的连接字符串:amqp://host.docker.internal:5673
但是,当Rebus正在初始化总线实例时运行这个异常:
System.ArgumentException HResult=0x80070057 消息=无法解析 host.docker.internal 的 IP 地址 来源=RabbitMQ.Client 堆栈跟踪: 在 RabbitMQ.Client.TcpClientAdapter.d__2.MoveNext()
我也尝试将端口切换回默认的 5672 并仅使用 amqp://host.docker.internal 并收到相同的异常。
解决方法
它是 host.docker.internal:5673... 我刚刚在 RabbitMQ 客户端库中看到一个关于 IPv6 的错误,并认为连接不好。它退回到 IPv4 并成功了。