.net Azure服务总线主题分区
我正在尝试向一个主题发送一条消息,该主题是在选中了启用重复检测和启用分区选项的情况下创建的。我没有在我的.net Azure服务总线主题分区,.net,azure,messaging,azureservicebus,azure-servicebus-topics,.net,Azure,Messaging,Azureservicebus,Azure Servicebus Topics,我正在尝试向一个主题发送一条消息,该主题是在选中了启用重复检测和启用分区选项的情况下创建的。我没有在我的BrokeredMessage实例上设置SessionId和PartitionKey属性。根据: 如果队列或主题具有 QueueDescription.RequiresDuplicateDetection属性设置为true和 BrokeredMessage.SessionId或BrokeredMessage.PartitionKey 未设置属性,则为BrokeredMessage.Messag
BrokeredMessage
实例上设置SessionId
和PartitionKey
属性。根据:
如果队列或主题具有
QueueDescription.RequiresDuplicateDetection属性设置为true和
BrokeredMessage.SessionId或BrokeredMessage.PartitionKey
未设置属性,则为BrokeredMessage.MessageId属性
用作分区键
创建BrokeredMessage
的实例后,其MessageId
属性将自动初始化,因此我希望分区能够正常工作。但它没有:
Microsoft.Azure.WebJobs.Host.FunctionInvocationException:异常
执行函数时:Functions.ProcessQueueMessage2Async-->
System.InvalidOperationException:需要为所有
将代理消息发送到支持排序的分区主题,主题
Name=dev1 mtapp:Topic:response-Topic~255。
跟踪ID:5fbe5df2-8747-4053-ba79-c29a80e9d1ed_G25_B31,
SystemTracker:dev1 mtapp:topic:response topic~255
我哪里错了?您应该设置:
topicDescription.SupportOrdering=false。
例如:
if (!this.namespaceManager.TopicExists(topicName))
{
TopicDescription topicDescription = new TopicDescription(topicName);
topicDescription.SupportOrdering = false;
this.namespaceManager.CreateTopic(topicDescription);
}
如何通过门户进行设置?我在主题创建屏幕上看不到任何相关内容。这可能是不可能的。可能在Visual Studio中。您可以通过门户取消选中“启用分区”。这会有帮助的。谢谢!可以确认是否有效,并可以在服务总线资源管理器中选中/取消选中强制消息排序标志(无需重新创建主题)。