无法连接到RabbitMQ服务器

bxgwgixi  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(2)|浏览(376)

我尝试运行的示例代码,由官方页面提供:https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html
我使用的代码是:

  1. using RabbitMQ.Client;
  2. using RabbitMQ.Client.Events;
  3. using System;
  4. class Send
  5. {
  6. public static void Main()
  7. {
  8. var factory = new ConnectionFactory() { HostName = "rabbit@my.host.name.net" };
  9. var connection = factory.CreateConnection() //this throwing exception
  10. var channel = connection.CreateModel()
  11. }
  12. }

问题是,我总是得到这些异常:
在RabbitMQ.Client.dll中的“RabbitMQ.客户端.异常.连接失败异常"
服务器没有在本地主机上运行,所以我已经将主机名更改为我的服务器主机名。我可以通过ping从我的计算机访问服务器,而服务器正在侦听5672端口。
有什么问题吗?

flseospp

flseospp1#

好了,下面就从评论中总结几点:
However the rabbit@.... is just the clustername, not refering to username虽然我不熟悉C# API,但我很确定这不是写主机名的方式。你应该先写IP,看看它是否工作,然后写主机名。如果你愿意,你可以使用API来提供the AMQP URI
集群是为代理本身准备的东西;客户端不应该关心它们是连接到集群中的节点,还是连接到单个(“非集群”)示例...
其次,“guest”用户,默认情况下使用(如果没有指定用户)只能从localhost访问代理(同样是默认情况下)。因此,如果您试图从另一台计算机连接到服务器,使用“guest”将不起作用。您需要创建一个新的RMQ用户并分配适当的权限。
请注意,您当然可以以guest用户具有访问权限的方式配置RMQ(即使对于开发环境,这也是非常错误的,即使您更改了默认密码),正式的RMQ Docker映像也是以这种方式配置的(无论如何,这是我上次检查的)。

li9yvcax

li9yvcax2#

您可能需要使用正确的.NET运行时。例如,RabbitMQ的here。此库的4.x和5.x发行版系列需要.NET 4.5.1+或.NET标准1.5+实现(例如.NET Core 2.x)。这只是发生在一个同事身上,他发现更新运行时修复了问题,日志消息几乎没有给出原因的线索。

相关问题