gpt4 book ai didi

c# - RabbitMQ 消费者

转载 作者:太空宇宙 更新时间:2023-11-03 11:44:29 29 4
gpt4 key购买 nike

我有一个从 RabbitMQ 队列中检索消息的 Windows 服务。该服务在 Windows 7 计算机上本地运行。当我在 Windows 2008 服务器上安装该服务时,它无法运行(并且不会引发任何错误)。我的 ASP.net MVC 应用程序可以将消息发布到同一队列。这里可能存在防火墙或安全问题吗?我是否应该以不同于下面的方式从 RabbitMQ 检索消息?

    public void PullFromQueue()
{
var connectionFactory = new ConnectionFactory();

using (var connection = connectionFactory.CreateConnection())
using (var channel = connection.CreateModel())
{
var consumer = new QueueingBasicConsumer(channel);
channel.ExchangeDeclare(ExchangeName, ExchangeType.Direct, true);
channel.QueueDeclare(QueueName, true);
channel.QueueBind(QueueName, ExchangeName, RoutingKey, false, null);
channel.BasicConsume(QueueName, null, consumer);
while (true)
{
try
{
var e = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
var props = e.BasicProperties;
props.DeliveryMode = PersistentDelivery;
var businessObject = DeserializeBusinessObject(e.DeliveryTag, e.Body);
processBusinessObject(businessObject);
channel.BasicAck(e.DeliveryTag, false);

}
catch (Exception ex)
{
Log<RabbitMQWrapper>.Error("Error in pulling Business Object from Queue", ex);
}

}
}
}

最佳答案

忘了 GAC。我在本地安装RabbitMQ.Client的时候,是放在GAC里面的。没有将 RabbitMQ.Client DLL 设置为复制本地。我很好奇它没有生成运行时错误。我觉得很蠢。

关于c# - RabbitMQ 消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3772310/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com