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.
我的机器上安装了 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.