2016-07-29 2 views
0

Следующий вызов AddMessage (код, заимствованный из другого сообщения) завершается неудачей: «Удаленный сервер возвратил ошибку: (401)« Несанкционированный ».Azure служебная шина AddMessage возвращает 401

var queue = new CloudQueueClient(
    new Uri("https://<service-account>.servicebus.windows.net/"), 
    new StorageCredentials("access1", "xxx")).GetQueueReference("queue1"); 

queue.AddMessage(new CloudQueueMessage("Hello")); 

Где xxx - это 44-символьный ПЕРВИЧНЫЙ КЛЮЧ, скопированный с экрана конфигурации Azure. Он не содержит никаких специальных символов. Может ли кто-нибудь увидеть, где я ошибаюсь? Использование уровня сервиса Учетные данные политики доступа к сервисам дают ту же ошибку 401.

Это Azure policy configuration для моего служебного счета.

(я попробовать другой подход, но ударил другой обманка service bus connection-string problem)

+0

Роб, вы делаете все неправильно ИМХО! Пожалуйста, см. Мой ответ на другой вопрос. –

+0

Я думаю, что я здесь не здесь, смешивая StorageCredentials и CloudQueueClient. Существует ли эквивалентный синтаксис для служебной шины? –

ответ

0

Вот как вы можете это сделать. Пожалуйста, убедитесь, что вы добавили ссылку на Microsoft.ServiceBus.dll в свой проект.

  var queueClient = QueueClient.CreateFromConnectionString(ConnectionString, queueName); 

Теперь вы можете выполнять операции на этой очереди, используя queueClient как добавление сообщений, чтение сообщений и т.д.

Для выполнения операций на уровне Service Bus, как создание очереди, вам нужно будет получить экземпляр NamespaceManager как следующее:

 var manager = NamespaceManager.CreateFromConnectionString(ConnectionString); 
     manager.CreateQueue(queue); 

Я настоятельно рекомендую прочитать это руководство, чтобы начать работу с Service Bus: https://azure.microsoft.com/en-in/documentation/articles/service-bus-dotnet-get-started-with-queues/.

Смежные вопросы