SocketException:使用 EasyNetQ ManagementClient 拒绝连接

SocketException: Connection refused using EasyNetQ ManagementClient

我的机器上安装了 RabbitMQ 管理控制台。 Web 界面正在处理中 http://localhost:15672

当我尝试通过代码访问 Rabbit 时,出现异常:

var mcGuest = new ManagementClient("http://localhost", "guest", "guest", 15672);
var vhost = mcGuest.GetVhost("/");

{"No connection could be made because the target machine actively refused it [::1]:15672"}

(管理客户端的源代码位于 https://github.com/EasyNetQ/EasyNetQ.Management.Client

我是 运行 Visual Studio 管理员,当 运行 netstat -anb:

时得到以下输出
Line 35:   TCP    0.0.0.0:5672           0.0.0.0:0              LISTENING
Line 37:   TCP    0.0.0.0:15672          0.0.0.0:0              LISTENING
Line 39:   TCP    0.0.0.0:25672          0.0.0.0:0              LISTENING
Line 200:   TCP    127.0.0.1:15672        127.0.0.1:18577        ESTABLISHED
Line 212:   TCP    127.0.0.1:18577        127.0.0.1:15672        ESTABLISHED
Line 484:   TCP    [::]:5672              [::]:0                 LISTENING

可能是什么问题?

显然问题出在 IPv6 上。可能跟我的环境有关。

当 运行 EasyNetQ api 在调试时,使用了 IPv6,我收到了错误。当 运行 发布时,使用 IPv4 并且套接字工作。

直接的解决方案是使用

new ManagementClient("http://127.0.0.1", "guest", "guest", 15672);

虽然我仍然不知道为什么 localhost 和 IPv6 不起作用。您可以看到异常详细信息使用了 IPv6 - [::1] which stands for localhost IP in v6.