Azure服务总线AddMessage返回401

时间:2016-07-29 01:48:08

标签: c# 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是从Azure的配置屏幕复制的44个字符的PRIMARY KEY。它不包含任何“特殊”字符。谁能看到我哪里出错了?使用服务级别服务访问策略凭据会产生相同的401错误。

这是我的服务帐户的Azure policy configuration

(我确实尝试了另一种方法,但又遇到了另一个问题service bus connection-string problem

1 个答案:

答案 0 :(得分:0)

这是你如何做到的。请确保您在项目中添加了对Microsoft.ServiceBus.dll的引用。

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

现在,您可以使用queueClient对该队列执行操作,例如添加消息,阅读消息等。

要在服务总线级别执行操作(如创建队列),您需要获取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/