.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中。您可以通过门户取消选中“启用分区”。这会有帮助的。谢谢!可以确认是否有效,并可以在服务总线资源管理器中选中/取消选中强制消息排序标志(无需重新创建主题)。