2013-11-28 2 views
10

Sto utilizzando il pacchetto Azur SDK Nuget più recente, rilasciato oggi 3.0 e che tenta di funzionare con lo spazio di archiviazione BLOB localmente nel mio ambiente di sviluppo. Ho creato un blob nella memoria di sviluppo locale utilizzando Azure Storage Explorer e sto cercando di leggere i dati, ma ho ricevuto 400 richieste errate. Quando scrivo nell'oggetto risposta restituito dall'eccezione, si dice "Il valore di una delle intestazioni HTTP non è nel formato corretto"..NET Azure SDK - Richiesta BLOB restituisce 400 BadRequest

La cosa strana è che quando ho messo l'URL completo in un browser scarica il blob bene (http://xxx.x.x.x:10000/devstoreaccount1/test/722b6bea-d609-48e0-a4af-3ed0f5160ad9)

Ecco il codice che sto usando:

 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(); 

Ho anche cercato di creare un nuovo blob nel codice e sto ottenendo la stessa eccezione

risposta

11

Probabilmente questo post può aiutare:

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

Aggiornamento

Come sottolineato da Gaurav Mantri nei commenti:

Non usare libreria client bagagli 3.0 in quanto fa uso di versione più recente servizio di stoccaggio che non è ancora supportato nell'emulatore di memoria. Basato su blog post dal team di archiviazione, il supporto per l' versione di servizio di archiviazione in emulatore è in arrivo in un paio di mesi.

+0

Ho installato l'ultimo SDK di Azure .NET che è 2.2 per quanto posso dire, quindi non sono sicuro che sia lo stesso problema. A meno che, per qualche ragione, il nuovo pacchetto NuGet che è 3.0 non funzioni con l'ultima versione dell'emulatore 2.2. –

+1

Sembra che il pacchetto 3.0 di Azure Storage NuGet rilasciato oggi non giochi bene con Azure SDK per .NET 2.2, che è l'ultimo che posso trovare da installare. Quando ho effettuato il downgrade al pacchetto NuGet 2.1.0.4, ha iniziato a funzionare come previsto. Immagino che presto verrà rilasciato un nuovo SDK che risolverà questo problema, ma per ora non dovrò effettuare l'upgrade, quindi posso lavorare localmente con lo storage Blob. –

+6

Non utilizzare la libreria Client di archiviazione 3.0 poiché utilizza la versione più recente del servizio di archiviazione che non è ancora supportata nell'emulatore di archiviazione. Basato sul post del blog dal team di archiviazione: http://blogs.msdn.com/b/windowsazurestorage/archive/2013/11/27/windows-azure-storage-release-introducing-cors-json-minute-metrics-and -more.aspx, il supporto per l'ultima versione del servizio di archiviazione in emulatore arriverà tra un paio di mesi. –