Сервисная шина Azure: как правильно проверить, существует ли уже подписка?

Я пытаюсь выполнить следующий код, чтобы проверить, существует ли уже подписка на тему служебной шины Azure:

void Initialize()
{
    CreateTopicSubscription().Wait();
    //CreateTopicSubscription().GetAwaiter().GetResult();
}

async Task CreateTopicSubscription()
{
    managementClient = new ManagementClient(serviceBusConnectionString);
    if (!await managementClient.QueueExistsAsync(queueName).ConfigureAwait(false))
    { /* do some logic */ }
    if (!await managementClient.SubscriptionExistsAsync(queueName, "subscriptionName1"))
    {
        await managementClient.CreateSubscriptionAsync(new SubscriptionDescription(queueName, "subscriptionName1"));
    }
}

И я получаю следующую ошибку в строке с SubscriptionExistsAsync:

Microsoft.Azure.ServiceBus.ServiceBusException: 'Указанная HTTP-команда (GET) недействительна. Чтобы узнать больше, посетите https://aka.ms/sbResourceMgrExceptions. . TrackingId: aa8b87cc-ea45-4fdc-be39-bf1877774b0e_G24, SystemTracker: needspacetests: Queue: sc-messenger, отметка времени: 2019-12-18T11: 33: 45 '

Что я здесь делаю не так / не хватает?

ПРИМЕЧАНИЯ:

  • Я использую недавно созданную служебную шину Azure в Базовом плане и недавно созданную (вручную) очередь.
  • queueName имеет значение существующей очереди.

person Chris W    schedule 18.12.2019    source источник


Ответы (1)


Я использую недавно созданную служебную шину Azure в базовом плане

На базовом уровне нет тем и подписок. Вам следует перейти на уровень Standard, если вам нужно использовать темы и подписки.

person Sean Feldman    schedule 18.12.2019