【发布时间】:2017-01-03 10:36:22
【问题描述】:
所以这里是连接代码。
var factory = new ConnectionFactory
{
HostName = "myserver",
UserName = "testuser",
Password = "testuserpassword"
};
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "LOG",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
string message = "Hello World!";
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "",
routingKey: "LOG",
basicProperties: null,
body: body);
Console.WriteLine(" [x] Sent {0}", message);
}
我在控制台应用程序中对此进行了测试,一切正常,我可以发送和接收消息。
如果我将上面的相同代码复制并粘贴到我的 WPF 应用程序中,我会在此处遇到异常
connection = factory.CreateConnection()
例外
抛出异常:RabbitMQ.Client.dll 中的“System.ArgumentException”
附加信息:无法为 myserver 解析 IP 地址
如果我将“myserver”更改为服务器 ip,我会得到同样的错误。 不明白为什么代码在一个应用程序中有效,而在另一个应用程序中无效。
【问题讨论】:
-
您尝试访问的 API URL 是什么?同时显示 CreateConnection() 函数中的代码。
-
我没有显示代码,因为我认为它不相关,代码没有那么远。 API 网址?我没有头绪。我正在使用这样的教程,它没有提到 API url。 rabbitmq.com/tutorials/tutorial-four-dotnet.html
-
API URL 是我们将消息发布到 MQ 的位置。我可以向您展示一个示例代码来建立连接并发布消息,但不确定这是否会有所帮助。所以我想看看你是如何创建连接的。
-
哦,对了,我不知道网址。我想象 RabbitMQ .net 客户端创建。从我的代码中可以看出,我没有在任何地方输入 url,它在控制台应用程序中运行良好。
-
您的 MQ 是否在另一台机器上运行?如果是,请检查您是否能够使用它的 IP ping 那台机器。 URL 是这样的 - http://
: /rpa/api/message