2016-05-11 6 views
0

Ich versuche, eine XML-Datei zu serialisieren und speichern Sie es in azurblau. Die Serialisierung funktioniert einwandfrei, und der Code tritt bei der Ausführung der Zeilen für den Azure-Upload nicht in Probleme auf. Aber ich kann nicht sagen, ob es hochgeladen wurde oder nicht. Haben Sie irgendwelche Gedanken darüber, wie Sie eine Antwort vom Server erhalten, auf den sie hochgeladen wurde?Serialize XML und speichern in Azure, C#

Unten ist mein azur Upload-Code:

CloudStorageAccount medcloudapp = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString")); 
CloudBlobClient blobClient = medcloudapp.CreateCloudBlobClient(); 
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer"); 
container.CreateIfNotExists(); 
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob"); 

using (var fileStream = System.IO.File.OpenRead(@"xmltransfer.xml")) 
{ 
    blockBlob.UploadFromStream(fileStream); 
} 

Antwort

2

Wenn Sie keine Fehler in der folgenden Codezeile bekommen:

blockBlob.UploadFromStream(fileStream); 

, dass Ihre Datei erfolgreich hochgeladen bedeuten würde, ist.

Nur für Ihre Ruhe, könnten Sie versuchen, Attribute des Blobs zu holen und seine Größe zu überprüfen. Es sollte mehr als 0 Bytes sein (vorausgesetzt, dass Ihre XML-Datei mehr als 0 Bytes groß ist). Sie würden etwas tun wie:

blockBlob.FetchAttributes(); 
Assert.IsTrue(blockBlob.Properties.Length > 0); 
+0

danke! Scheint so, als ob es funktioniert! :) Anders gesagt, wenn der Serialisierungscode und der azurblaue Code beide gleichzeitig laufen, kann azure nicht hochladen, weil es besagt, dass die Datei verwendet wird. Das sollte verschwinden, wenn ich die Serialisierung nur einmal richtig ausführen lasse ? – Damianos

+1

Das ist richtig. Wie der Fehler sagt, wird die Datei durch Ihren Serialisierungsprozess gesperrt und aufgrund dessen kann die Storage Client-Bibliothek diese Datei nicht verarbeiten. –