RabbitMq连接失败,生产服务器上出现异常

q7solyqu  于 12个月前  发布在  RabbitMQ
关注(0)|答案(1)|浏览(151)

我有一个基于.NET 4.6.2构建的Windows窗体应用程序。我使用下面的代码将应用程序连接到rabbitmq。Rabbit mq服务部署在单独的服务器上。

var factory = new ConnectionFactory() { HostName = _host, Port = _port, UserName = _userName, Password = _password };
if (_port != 5672){
factory.Ssl.Enabled = true;
factory.Ssl.Version = System.Security.Authentication.SslProtocols.Tls12;
factory.Ssl.CertificateValidationCallback = delegate (object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };}
Client = factory.CreateConnection();
Channel = Client.CreateModel();

这在生产中运行得非常好。现在,最近,我们正在计划一个新的版本,其中有其他组件的变化,但没有在这个应用程序的变化,但当我在生产服务器上运行的应用程序,它给出了下面的例外。

RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable ---> System.IO.IOException: connection.start was never received, likely due to a network timeout
   at RabbitMQ.Client.Framing.Impl.Connection.StartAndTune()
   at RabbitMQ.Client.Framing.Impl.Connection.Open(Boolean insist)
   at RabbitMQ.Client.Framing.Impl.AutorecoveringConnection.Init(IFrameHandler fh)
   at RabbitMQ.Client.ConnectionFactory.CreateConnection(IEndpointResolver endpointResolver, String clientProvidedName)
   --- End of inner exception stack trace ---
   at RabbitMQ.Client.ConnectionFactory.CreateConnection(IEndpointResolver endpointResolver, String clientProvidedName)
   at LiveStatisticsBroker.CheckAndUpdateSessionStatus() in LiveStatistics.cs:line 105

代码中没有任何更改,如果我恢复到以前的版本,它可以正常工作。我已经检查了网络连接,没有问题,即使我telnet服务器IP和端口5671,它得到成功。
奇怪的是,如果我把相同的版本放在开发服务器上,rabbitmq就会连接上。我们的开发服务器也遵循相同的网络规则。我在这方面已经坚持了一段时间,没有取得任何成功。

wlsrxk51

wlsrxk511#

将RabbitMq.Client nuget包从6.2.1升级到6.5.0对我来说很有用。内存也作为依赖项进行了升级。

相关问题