SocketException:使用EasyNetQ ManagementClient

时间:2017-10-29 14:08:23

标签: c# rabbitmq socketexception easynetq econnrefused

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

当我尝试通过代码访问Rabbit时,我得到一个例外:

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

{“无法建立连接,因为目标计算机是主动的   拒绝了它[:: 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

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

显然问题在于IPv6。可能与我的环境有关。

在Debug上运行EasyNetQ api时,使用了IPv6并且我收到错误。在Release上运行时,使用IPv4并使用套接字。

立即解决方案是使用

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

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