キューにメッセージを送信しようとしています。キューはすでに存在し、非永続として構成されています。これが私のコードです:
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 close-reason、Peerによって開始、code = 406、text = "PRECONDITION_FAILED-inequivalent arg'durable 'for exchange'QUEUENAMEHERE' in vhost '/':received'true 'but current is'false' "、classId = 40、methodId = 10、cause =
メッセージがまだ永続的なものとして送信される理由はありますか?
そのDurableフラグは、特定の要求メッセージをディスクに永続化してはならないことを指定するだけです。
これを修正する場合は?durable=false
、serviceUriに追加して、要求を処理する受信エンドポイントで指定されているものと一致させます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加