Azure的服务总线连接字符串导致CloudStorageAccount.Parse错误

问题描述:

以下调用Azure的服务总线连接字符串导致CloudStorageAccount.Parse错误

CloudStorageAccount.Parse(<connection-string>); 

返回此错误:

"No valid combination of account information found."

直接从连接字符串,主键字段上复制的连接字符串Azure服务总线访问策略 - >策略刀片,看起来像这样:

Endpoint = sb://xxx.servicebus.windows.net/; SharedAccessKeyName = xxx; Shar edAccessKey = xxx; EntityPath = xxx

我需要CloudQueueClient和CloudQueue实例来执行队列操作。 我是否错过了一些显而易见的东西,还是有另一种方法来初始化CloudStorageAccount?

更新:以下语法允许我使用服务级别(而不是队列级别)凭据添加新队列,但我不确定从这里到达CloudQueue或CloudQueueClient实例的方式。

var queueNamespace = NamespaceManager.CreateFromConnectionString(
    "Endpoint=sb://<service-account>.servicebus.windows.net/; 
    SharedAccessKeyName=sharedaccess; 
    SharedAccessKey=xxx"); 

您得到此错误的原因是因为您尝试将存储客户端库用于Service Bus资源。 Microsoft.WindowsAzure.Storage是Azure存储的客户端库。 Azure存储中的队列不是服务总线队列。

对于服务总线队列,您需要使用其客户端库,您可以通过从https://www.nuget.org/packages/WindowsAzure.ServiceBus/的Nuget进行安装。

一旦你这样做,你应该能够使用下面的代码来创建一个NamespaceManager

var manager = Microsoft.ServiceBus.NamespaceManager.CreateFromConnectionString(ConnectionString); 

,然后你就可以在你的服务总线队列执行操作。

你可能会发现这个链接也很有用:https://azure.microsoft.com/en-in/documentation/articles/service-bus-dotnet-get-started-with-queues/

+0

Thanks @ guarav-mantri,我现在正在使用正确的软件包。 –

+0

太棒了!您是否可以在Service Bus帐户中对您的队列执行操作,或者您需要进一步的帮助? –