2013-11-28 93 views
10

我正在使用最新的Azure SDK Nuget包,它是今天發佈的3.0,並嘗試在本地開發環境中使用Blob存儲。我使用Azure存儲資源管理器在本地開發存儲中創建了一個Blob,並試圖讀取數據,但返回了400個錯誤請求。當我挖掘由異常返回的響應對象時,它說「HTTP標頭之一的值的格式不正確。」.NET Azure SDK - Blob請求返回400 BadRequest

奇怪的是,當我把完整的URL在瀏覽器中它下載一滴就好(http://xxx.x.x.x:10000/devstoreaccount1/test/722b6bea-d609-48e0-a4af-3ed0f5160ad9

這裏是我使用的代碼:

 var storageAccount = Microsoft.WindowsAzure.Storage.CloudStorageAccount.Parse("UseDevelopmentStorage=true"); 
     var blobClient = storageAccount.CreateCloudBlobClient(); 
     var container = blobClient.GetContainerReference("test"); 

     var blob = container.GetBlockBlobReference("722b6bea-d609-48e0-a4af-3ed0f5160ad9"); 
     var text = blob.DownloadText(); 

我也嘗試創建在代碼中新斑塊和我得到相同的異常

回答

11

也許這篇文章可以幫助你:

http://social.msdn.microsoft.com/Forums/windowsazure/en-US/b1b66cc0-5143-41fb-b92e-b03d017ea3c1/400-bad-request-connecting-to-development-storage-using-azure-storage-client-ver-20?forum=windowsazuredata

更新

正如拉夫Mantri在評論中指出:

,因爲它利用了最新的存儲 服務版本,它還不支持不使用存儲客戶端庫3.0在存儲模擬器中。基於 的blog post由存儲組支持, 最新存儲服務版本在仿真器中支持 個月。

+0

我已經安裝了最新的.NET Azure SDK,據我所知,這是2.2,所以我不確定它是同一個問題。除非由於某種原因,3.0版的新NuGet軟件包不適用於2.2版本的最新版本的模擬器。 –

+1

看起來像今天發佈的Azure存儲NuGet包版本3.0不能很好地與Azure SDK for .NET 2.2兼容,後者是我可以找到的最新版本。當我降級到2.1.0.4 NuGet包時,它開始按預期工作。我猜想一個新的SDK即將推出,將解決這個問題,但現在我不得不升級,所以我可以在本地使用Blob存儲工作。 –

+6

請勿使用Storage Client Library 3.0,因爲它利用存儲模擬器尚不支持的最新存儲服務版本。根據存儲團隊的博客文章:http://blogs.msdn.com/b/windowsazurestorage/archive/2013/11/27/windows-azure-storage-release-introducing-cors-json-minute-metrics-and -more.aspx,對模擬器中最新的存儲服務版本的支持將在幾個月後發佈。 –