C# RabbitMQ:无法访问指定的终结点

C# RabbitMQ:无法访问指定的终结点,c#,rabbitmq,windows-server-2012,C#,Rabbitmq,Windows Server 2012,我的rabbitmq应用程序正在windows 2012服务器上运行,我随机使用它来获取此错误 Exception Type: RabbitMQ.Client.Exceptions.BrokerUnreachableException None of the specified endpoints were reachable at RabbitMQ.Client.ConnectionFactory.CreateConnection() at Program.Main(St

我的rabbitmq应用程序正在windows 2012服务器上运行,我随机使用它来获取此错误

Exception Type: RabbitMQ.Client.Exceptions.BrokerUnreachableException



None of the specified endpoints were reachable

   at RabbitMQ.Client.ConnectionFactory.CreateConnection()

   at Program.Main(String[] args)

Stream does not support writing.

   at System.IO.BufferedStream.EnsureCanWrite()

   at System.IO.BufferedStream.Write(Byte[] array, Int32 offset, Int32 count)

   at RabbitMQ.Client.Impl.SocketFrameHandler.SendHeader()

   at RabbitMQ.Client.Framing.Impl.Connection.StartAndTune()

   at RabbitMQ.Client.Framing.Impl.Connection.Open(Boolean insist)

   at RabbitMQ.Client.Framing.Impl.Connection..ctor(IConnectionFactory factory, Boolean insist, IFrameHandler frameHandler)

   at RabbitMQ.Client.Framing.Impl.ProtocolBase.CreateConnection(IConnectionFactory factory, Boolean insist, IFrameHandler frameHandler)

   at RabbitMQ.Client.ConnectionFactory.CreateConnection()
随机连接失败并自动开始连接的原因可能是什么


有谁能帮我解决这个问题。

很难说到底是什么问题,但导致出现这种问题的原因之一是RabbitMQ心跳,您可以更改此值。有关更多信息,请查看此链接


这里重要的是:哪个操作系统使用客户端? 它运行的是Windows XP/7吗

它可能已达到并发TCP连接的限制

下面介绍如何在Windows7上增加该限制


当使用运行Win7的.NET RabbitMQ客户端进行压力测试时,我也遇到了同样的问题。

在某些情况下,您可能会遇到“无法访问任何指定的端点”错误


当RabbitMQ服务未运行时,或者RabbitMQ服务正在运行但处于错误状态时,以及当客户端无法连接时(例如,用户无法访问其尝试连接的虚拟主机时),我都看到了这一点。

我遇到了这个问题,最后我可以通过添加“Ssl”来解决它属性,指定了“ServerName”子属性

下面是我所做的,它连接到Rabbit MQ服务器。 请注意下面代码的“ServerName”部分:

var rabbitMqConnectionFactory
    = new ConnectionFactory
        {
            HostName = rabbitMqHostName,
            Port = rabbitMqPort,
            UserName = rabbitMqUserName,
            Password = rabbitMqPassword,
            VirtualHost = rabbitMqVirtualHost,
            RequestedHeartbeat = 60,
            Ssl =
                {
                    **ServerName** = rabbitMqHostName,
                    Enabled = useSsl
                }
        };

我也有同样的问题。就我而言,5672端口已关闭。
为了找到问题所在,我在代码中激活了InnerException。

我也遇到了同样的问题,我通过使用Docker compose创建新的RabbitMQ Docker容器解决了这个问题:

 rabbitmq:
    container_name: rabbitmq
    tty: true
    hostname: rabbitmq
    ports:
      - "15672:15672"
      - "5672:5672"
    image: rabbitmq:3-management
    environment:
      - RABBITMQ_DEFAULT_USER=user
      - RABBITMQ_DEFAULT_PASS=password
要通过代码访问它,我必须在appsettings.json文件中将主机设置为我的本地主机IP地址:

"RabbitMqSend": {
"Hostname": "192.168.0.12",
"QueueName": "SendQueue",
"UserName": "user",
"Password": "password"},

这对我来说很有用。

你的网络有多稳定?@YuvalItzchakov这是AWS服务器,它似乎一直在运行。我也有同样的问题。有一些事情像Skype影响RabbitMQ,不知道为什么。此外,有时我不得不停止RabbitMQ服务,稍等片刻,然后再次启动它(如果我重新启动它,它就不工作了),不知道问题出在哪里,这真的很烦人@杰伊,还是同一个问题吗?
"RabbitMqSend": {
"Hostname": "192.168.0.12",
"QueueName": "SendQueue",
"UserName": "user",
"Password": "password"},