2

我正在尝试向一个主题发送一条消息,该主题是在选中启用重复检测启用分区选项的情况下创建的。我没有在我的实例上设置SessionIdPartitionKey属性。BrokeredMessage据此:_

如果队列或主题的 QueueDescription.RequiresDuplicateDetection 属性设置为 true 并且未设置 BrokeredMessage.SessionId 或 BrokeredMessage.PartitionKey 属性,则 BrokeredMessage.MessageId 属性用作分区键。

在我创建BrokeredMessageMessageId属性的实例后,它会自动初始化,所以我希望分区能够工作。但它没有:

Microsoft.Azure.WebJobs.Host.FunctionInvocationException:执行函数时出现异常:Functions.ProcessQueueMessage2Async ---> System.InvalidOperationException:需要为支持排序的分区主题设置所有代理消息的 SessionId,主题名称 = dev1-mtapp:主题:响应主题~255。TrackingId:5fbe5df2-8747-4053-ba79-c29a80e9d1ed_G25_B31, SystemTracker:dev1-mtapp:topic:response-topic~255

我哪里错了?

4

1 回答 1

2

您应该设置: topicDescription.SupportOrdering = false. 例如:

        if (!this.namespaceManager.TopicExists(topicName))
        {
            TopicDescription topicDescription = new TopicDescription(topicName);
            topicDescription.SupportOrdering = false;
            this.namespaceManager.CreateTopic(topicDescription);
        }
于 2017-06-30T12:32:32.937 回答