c# - 对象未连接到服务器
问题描述
我有这个代码:
public class Rabbit
{
public IConnection GetConnection(string hostName, string userName, string password)
{
ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.HostName = "1.2.3.4";
connectionFactory.UserName = "login";
connectionFactory.Password = "pass";
connectionFactory.Port = 5672;
return connectionFactory.CreateConnection();
}
public void Send(string queue, string data)
{
using (IConnection connection = new ConnectionFactory().CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
channel.QueueDeclare(queue, false, false, false, null);
channel.BasicPublish(string.Empty, queue, null, Encoding.UTF8.GetBytes(data));
}
}
}
public string Receive(string queue)
{
using (IConnection connection = new ConnectionFactory().CreateConnection())
{
using (IModel channelconsumer = connection.CreateModel())
{
channelconsumer.QueueDeclare(queue, false, false, false, null);
BasicGetResult result = channelconsumer.BasicGet(queue, true);
if (result != null)
{
string data = Encoding.UTF8.GetString(result.Body);
Console.WriteLine(data);
return data;
} else
{
return null;
}
}
}
}
}
我运行我的代码:
var rabbit = new Rabbit();
rabbit.Send("sample.queue.queue", json);
我的 RABBIT 对象连接到本地主机,而不是配置在 GetConnection 中的服务器。
我可以请您更正此代码吗?我的代码中的登录详细信息是正确的。
解决方案
看起来您并没有使用该GetConnection
方法,您只需创建一个完全独立的方法,ConnectionFactory
使其使用默认值。
看起来你应该更换
using (IConnection connection = new ConnectionFactory().CreateConnection())
和
using (IConnection connection = GetConnection())
推荐阅读
- r-markdown - Blogdown + Hugo 没有在 netlify 上显示 Rmarkdown 图
- html - 兼容性问题
- python-3.x - 无法使用 vscode 在 docker 中运行 python flask 应用程序(来自教程)
- git - 是否可以计算特定提交的父母数量?
- javascript - 图片无法在 header.ejs 文件中显示
- c++ - 插入和删除哪种数据结构更快
- python - 使用 Tweepy 时出现 TweepError 属性错误
- eclipse-plugin - 如何将插件放在第三方插件的类路径中?
- python-3.x - Python 变量引用(原始类型与对象)
- flutter - 如果 HTTP 调用成功,Flutter 会在屏幕上导航