生产服务器上的RabbitMq连接失败异常

问题描述 投票:0回答:1

我有一个基于 .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

代码没有任何变化,如果我恢复到以前的版本,它可以正常工作。我检查了网络连接,即使我远程登录服务器 IP 并使用端口 5671,也没有问题。

奇怪的是,如果我在开发服务器上放置相同的版本,rabbitmq 就会连接。我们的开发服务器也遵循相同的网络规则。我已经坚持了一段时间,但没有取得任何成功。

c# .net rabbitmq .net-4.6.2
1个回答
0
投票

将 RabbitMq.Client nuget 包从 6.2.1 升级到 6.5.0 对我来说成功了。 System.Memory 也作为依赖项进行了升级。

© www.soinside.com 2019 - 2024. All rights reserved.