AzureServiceバスで断続的な問題が発生しています。散発的に、バスにメッセージを配置すると、次の例外が発生します。
タイプ:InvalidOperationException
メッセージ:仲介されたメッセージ「723eab13dab34351a78bb687d0923b89」がすでに消費されているため、操作を実行できません。操作には新しいBrokeredMessageインスタンスを使用してください。
スタックトレース
at Microsoft.ServiceBus.Messaging.MessagingUtilities.ValidateAndSetConsumedMessages(IEnumerable`1 messages)
at Microsoft.ServiceBus.Messaging.MessageSender.Send(TrackingContext trackingContext, IEnumerable`1 messages, TimeSpan timeout)
at Microsoft.Practices.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.<ExecuteAction>b__0()
at Microsoft.Practices.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)
at IQ.IR.Core.ServiceBus.AzureBus`1.Enqueue(T message) in c:\BuildAgent\work\cc0c51104c02a4e9\IQ.IR.Core\ServiceBus\AzureBus.cs:line 69
...Rest of stacktrace snipped as it's within my app
AzureBusの問題のあるコードは次のとおりです。
public void Enqueue(T message)
{
using (var brokeredMessage = new BrokeredMessage(message) { Label = message.GetType().FullName, TimeToLive = _timeToLive })
{
_retryPolicy.ExecuteAction(() => _sender.Send(brokeredMessage));
}
}
渡されるTメッセージは
[Serializable]
public class ValidationMessage
{
public string ValidationToken { get; set;}
}
そして、_retryPolicyは
RetryPolicy<ServiceBusTransientErrorDetectionStrategy>
_timeToLiveは12時間のタイムスパンです
何か案は?