【问题标题】:RabbitMQ SocketExceptionRabbitMQ 套接字异常
【发布时间】:2011-10-23 17:23:33
【问题描述】:

我已经在我们的 Windows Server 上安装了 RabbitMQ 服务,并尝试使用 c# 创建一个 sub/pub 演示,但如果我在另一台电脑上开发应用程序而不是安装 RabbitMQ 的服务器,我每次都会收到此异常。

ConnectionFactory factory = new ConnectionFactory();
factory.HostName = "192.168.100.34";
factory.UserName = "username";
factory.Password = "password";

IConnection conn = factory.CreateConnection();

例外情况是:发送或接收数据的请求被禁止,因为套接字未连接并且(当使用 sendto 调用在数据报套接字上发送时)没有提供地址

我在电脑上关闭了服务器上的防火墙,但没有运气。

【问题讨论】:

    标签: c# rabbitmq


    【解决方案1】:

    这是第一次机会异常,因为客户端可能需要重试几次才能成功打开。你可以直接 F5 过去。它只是显示出来,因为您在调试时在选项中打开了异常中断

    【讨论】:

      【解决方案2】:

      尝试将 IP 地址替换为服务器名称。我似乎记得 Kerberos 处理主机名的方式不同。

      这听起来不像是 Erlang cookie 问题,这是让我最头疼的问题。

      您是否尝试过 ping 服务器?

      RabbitMQ in Action 一书中有几页故障排除建议,目前可作为抢先体验版。我建议买这个;它包含许多有用的提示。不过,浏览故障排除部分,我没有看到任何直接适用于您的问题的内容。

      【讨论】:

      • 老实说,我没有检查 Erlang cookie,但实际上使用最新版本的 RabbitMQ 和 Erlang,它应该不再是问题,但我会看看它。我认为这绝对是一个网络问题,我想这可能是因为服务器上的其他 4 个网络适配器用于其他事情,例如 iSCSI 和负载平衡。我已经做过的服务器 ping 以及所有其他 C# 网络演示(如纯 WCF 服务、TCP 客户端)在防火墙关闭时似乎都能成功。
      • Erlang cookie 仅在连接多个 Erlang 节点时才相关(例如,在代理节点上使用 rabbitmqctl 时,或直接与 Erlang 客户端连接时)。它对 .NET 客户端没有任何影响。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-28
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      相关资源
      最近更新 更多