Невозможно создать новую тему в ServiceBus с помощью CreateTopicAsync - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь создать новую тему (а затем и подписку) с помощью метода CreateTopicAsync из библиотеки Microsoft.Azure.ServiceBus.Management .Строка подключения верна, и я могу отправлять и получать сообщения, если создаю тему через портал Azure.Что я делаю неправильно?Любая помощь приветствуется.

var managementClient = new ManagementClient(ServiceBusConnectionString);
bool topicExists = await managementClient.TopicExistsAsync(TopicName).ConfigureAwait(false);
if (!topicExists) {
    TopicDescription td = new TopicDescription(TopicName);
    td.MaxSizeInMB = 1024;
    td.DefaultMessageTimeToLive = new TimeSpan(2, 0, 0, 0);
    await managementClient.CreateTopicAsync(td).ConfigureAwait(false);
}

1 Ответ

0 голосов
/ 17 сентября 2018

Хотя строка подключения служебной шины может быть правильной, чтобы ваше приложение могло создавать тему, оно должно иметь право Manage (заявка).

Взято из Управление доступом к служебной шинес сигнатурами общего доступа :

Для каждого правила политики авторизации вы выбираете три элемента информации: имя, область действия и права.Имя только это;уникальное имя в этой области.Область действия достаточно проста: это URI рассматриваемого ресурса.Для пространства имен служебной шины областью является полное доменное имя (FQDN), например https: //.servicebus.windows.net/.

Права, предоставляемые правилом политики, могут быть комбинацией:

  • «Отправить» - предоставляет право отправлять сообщения объекту.
  • «Прослушать» - предоставляет право прослушивать (ретрансляция) или получать (очередь, подписка) и всеобработка связанных сообщений
  • «Управление» - предоставляет право управлять топологией пространства имен, включая создание и удаление объектов

Право «Управление» включает в себя «Отправить» и «Получи права.

...