Разделы по служебной шине 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. TrackingId: 5fbe5df2-8747-4053-ba79-c29a80e9d1ed_G25_B31, SystemTracker: dev1-mtapp: topic: response-topic ~ 255

Где я не прав?


person UserControl    schedule 30.06.2017    source источник


Ответы (1)


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

        if (!this.namespaceManager.TopicExists(topicName))
        {
            TopicDescription topicDescription = new TopicDescription(topicName);
            topicDescription.SupportOrdering = false;
            this.namespaceManager.CreateTopic(topicDescription);
        }
person Tselofan    schedule 30.06.2017
comment
Как установить через портал? Я не вижу ничего похожего на экране создания темы. - person UserControl; 30.06.2017
comment
Наверное, это невозможно. Может быть в Visual Studio. Вы можете снять флажок Включить разбиение через портал. Это может помочь. - person Tselofan; 30.06.2017
comment
Спасибо! Может подтвердить, что работает, и флаг Принудительное упорядочение сообщений можно установить / снять в обозревателе служебной шины (нет необходимости воссоздавать тему). - person UserControl; 30.06.2017