我正在尝试向使用两者创建的主题发送消息启用重复检测 and 启用分区选项已选中。我不设置SessionId
and PartitionKey
我的属性BrokeredMessage
实例。根据this https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-partitioning:
如果队列或主题有
QueueDescription.RequiresDuplicateDetection 属性设置为 true 并且
BrokeredMessage.SessionId 或 BrokeredMessage.PartitionKey
属性未设置,则 BrokeredMessage.MessageId 属性
作为分区键。
在我创建一个实例之后BrokeredMessage
its MessageId
属性是自动初始化的,所以我希望分区能够工作。但它没有:
Microsoft.Azure.WebJobs.Host.FunctionInitationException:异常
执行函数时:Functions.ProcessQueueMessage2Async --->
System.InvalidOperationException:需要为所有设置 SessionId
将消息代理到支持排序、主题的分区主题
名称 = dev1-mtapp:主题:响应主题~255。
跟踪ID:5fbe5df2-8747-4053-ba79-c29a80e9d1ed_G25_B31,
SystemTracker:dev1-mtapp:主题:响应主题~255
我哪里错了?
你应该设置:topicDescription.SupportOrdering = false.
例如:
if (!this.namespaceManager.TopicExists(topicName))
{
TopicDescription topicDescription = new TopicDescription(topicName);
topicDescription.SupportOrdering = false;
this.namespaceManager.CreateTopic(topicDescription);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)