2016-07-29 103 views
1

以下調用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"); 

回答

2

您得到此錯誤的原因是因爲您嘗試將存儲客戶端庫用於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帳戶中對您的隊列執行操作,或者您需要進一步的幫助? –