Разделение тем служебной шины Azure

Я пытаюсь отправить сообщение в тему, которая была создана с установленными опциями Включить обнаружение дубликатов и Включить разделение. Я не ставлю SessionId а также PartitionKey свойства на моем BrokeredMessage пример. Согласно этому:

Если для очереди или темы свойство QueueDescription.RequiresDuplicateDetection имеет значение true, а свойства BrokeredMessage.SessionId или BrokeredMessage.PartitionKey не заданы, то ключ BrokeredMessage.MessageId служит ключом раздела.

После того, как я создаю экземпляр BrokeredMessage его MessageId свойство инициализируется автоматически, поэтому я ожидаю, что разбиение будет работать. Но это не так:

Microsoft.Azure.WebJobs.Host.FunctionInvocationException: исключение при выполнении функции: Functions.ProcessQueueMessage2Async ---> System.InvalidOperationException: SessionId должен быть установлен для всех сообщений-посредников в разделенной теме, которая поддерживает упорядочение, имя темы = dev1-mtapp: тема: ответ-тема ~255. Идентификатор отслеживания:5fbe5df2-8747-4053-ba79-c29a80e9d1ed_G25_B31, SystemTracker:dev1-mtapp: тема: ответная тема ~ 255

Где я не прав?

1 ответ

Решение

Вы должны установить: topicDescription.SupportOrdering = false. Например:

        if (!this.namespaceManager.TopicExists(topicName))
        {
            TopicDescription topicDescription = new TopicDescription(topicName);
            topicDescription.SupportOrdering = false;
            this.namespaceManager.CreateTopic(topicDescription);
        }
Другие вопросы по тегам