2

J'essaie d'envoyer un message à un sujet qui a été créé avec les deux Activer la détection de doublons et Activer le partitionnement options cochées. Je ne définis pas les propriétés SessionId et PartitionKey sur mon instance BrokeredMessage. Selon this:Azure Service Bus partitionnement des sujets

Si la file d'attente ou d'un sujet a la propriété QueueDescription.RequiresDuplicateDetection définie sur true et les propriétés BrokeredMessage.SessionId ou BrokeredMessage.PartitionKey ne sont pas définies, la propriété BrokeredMessage.MessageId sert la clé de partition.

après avoir créé une instance de BrokeredMessage sa MessageId propriété est automatiquement initialisées donc j'attends le partitionnement de travailler. Mais il ne fait pas:

Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception lors de l'exécution fonction: Functions.ProcessQueueMessage2Async ---> System.InvalidOperationException: SessionId doit être réglé pour tous les messages à négociés un sujet partitionné qui prend en charge la commande, sujet Nom = dev1-mtapp: Sujet: response-topic ~ 255. TrackingID: 5fbe5df2-8747-4053-ba79-c29a80e9d1ed_G25_B31, SystemTracker: dev1-mtapp: Sujet: réponse-sujet ~ 255

Où suis-je tort?

Répondre

2

Vous devez définir: topicDescription.SupportOrdering = false. Par exemple:

 if (!this.namespaceManager.TopicExists(topicName)) 
     { 
      TopicDescription topicDescription = new TopicDescription(topicName); 
      topicDescription.SupportOrdering = false; 
      this.namespaceManager.CreateTopic(topicDescription); 
     } 
+1

Comment puis-je configurer via le portail? Je ne vois rien de lié au sujet créer un écran. – UserControl

+0

Ce n'est probablement pas possible. Peut être dans Visual Studio. Vous pouvez décocher "Activer le partitionnement" via le portail. Cela peut aider. – Tselofan

+0

Merci! Peut confirmer que fonctionne et que l'indicateur ** Enforce Message Ordering ** peut être coché/décoché dans Service Bus Explorer (pas besoin de recréer un sujet). – UserControl