c# - 当方法被另一个方法调用时,RabbitMQ Consumer 不检索消息
问题描述
考虑到提到的来自 RabbitMQ 官方网站 的代码,我在控制台应用程序中实现了代码并且运行良好,但是当从另一个项目调用此方法时,receivedMessage 为空!
using RabbitMQ.Client.Events;
using System;
using System.Text;
class Receive
{
public static void Main()
{
var receivedMessage="";
var factory = new ConnectionFactory() { HostName = "localhost" };
using(var connection = factory.CreateConnection())
using(var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
receivedMessage = message;
Console.WriteLine(" [x] Received {0}", message);
};
channel.BasicConsume(queue: "hello",
autoAck: true,
consumer: consumer);
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
}
}
解决方案
推荐阅读
- umbraco-ucommerce - “没有支持该 url 的产品目录组”错误
- google-cloud-platform - Google Cloud 免费套餐的流量限制
- javascript - 如何在没有用户提示的情况下关闭浏览器选项卡并在 IE11 中调用函数?
- c# - 使用事务和错误处理从 C# 上传 oracle 表中的批量数据的最佳实践是什么?
- spring - 如何将表单jsp提交给控制器?
- django - 使用自定义 [排除] 在 ListView 中显示字段的 DRY 方法
- wordpress - 在 woodmart 主题中更改添加到愿望清单文本
- python - 如何访问 pytest 夹具中的所有标记?
- jenkins - Jenkins 将发布两份结果报告
- javascript - Vue数据值未更新以供函数使用