我正在尝试向队列发送消息。队列已存在,并配置为非持久性。这是我的代码:
ServiceBus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
sbc.PurgeOnStartup = true;
sbc.Durable = false;
sbc.Exclusive = false;
sbc.Host(new Uri($"rabbitmq://{RabbitMqHost}"), cfg =>
{
cfg.ConfigureRabbitMq();
});
});
ServiceBus.Request(
new Uri(serviceUri),
new EngineStartingMessage() { Version = ApplicationConfig.SystemVersion },
rCfg =>
{
rCfg.Durable = false;
rCfg.Timeout = new TimeSpan(0, 0, 30);
rCfg.Handle<EngineStartingResponse>(async hContext =>
{
//Response handling
});
});
正如您所见,Durable设置为false。在ServiceBus.Request上,我得到以下异常:
AMQP操作被中断:AMQP关闭原因,由...发起 同行,代码= 406,text =“PRECONDITION_FAILED - 不等效arg'持久' 交换'QUEUENAMEHERE'在vhost'/':收到'true'但是当前 是'false'“,classId = 40,methodId = 10,cause =
为什么邮件仍然以耐用方式发送的任何想法?
答案 0 :(得分:0)
该Durable标志仅指定不应将特定请求消息持久保存到磁盘。
如果要解决此问题,请将?durable=false
添加到serviceUri,以匹配处理请求的接收端点上指定的内容。