あなたの説明によると、同様の問題について話しているブログ(Canceling Scheduled Messages)が見つかりました。
は、バージョン3.3.1の前に、予定のメッセージは、それがことはできませんでした、見えるようになる前にキャンセルする必要があります。その値にアクセスしようとすると、InvalidOperationException
になります。したがって、将来スケジュールされ、もはや必要とされないメッセージは、後の時間までブローカに「スタック」することになります。
Microsoft Azure Service Bus> = 3.3.1 QueueClient
またはTopicClient
を使用してメッセージをスケジュールし、後で取り消すことができます。
また、私は次のコードを経由して私の側にそれをテストしています
BrokeredMessage brokerMsg= new BrokeredMessage("Hello World!!!");
long sequenceNumber = await queueClient.ScheduleMessageAsync(brokerMsg, DateTimeOffset.UtcNow.AddSeconds(30));
await Task.Delay(TimeSpan.FromMinutes(1));
// Cancel scheduled message
await queueClient.CancelScheduledMessageAsync(sequenceNumber);
私は紺碧のポータルにログインし、ACTIVE MESSAGE COUNTとスケジュール設定したメッセージのCOUNTをチェックします。それがアクティブになる前に、私は、スケジュール設定したメッセージを取り消すことができますが、私はsequenceNumber
経由でスケジュール設定したメッセージをキャンセルした場合、スケジュールメッセージがアクティブになった後、次のように、私は例外を取得することができます。あなたがしようとしたときに何が起こった
それ? – mjwills
私は来週それを試してみましょう。私はそれについてのドキュメントを見つけることができていないので誰もが既に知っているかどうかだけの疑問。 –