2016-05-11 24 views
0

xmlファイルをシリアル化してazureに保存しようとしています。シリアライズはうまくいって、紺色のアップロードのための行を実行するときにコードは問題にならない。しかし、アップロードされているかどうかはわかりません。それがアップロードされているサーバーからの応答を取得する方法についての任意の考えですか?XMLをシリアライズしてAzureに保存するC#

以下は私の紺碧のアップロードのコードです:

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

答えて

2

あなたが次のコード行ですべてのエラーを取得していない場合は、次のファイルを意味します

blockBlob.UploadFromStream(fileStream); 

が正常にアップロードされます。

ちょうどあなたの安心のために、ブロブの属性を取得し、サイズを確認しようとすることができます。 0バイトを超えている必要があります(XMLファイルのサイズが0バイトを超えると仮定します)。

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

ありがとうございます。それが動作するように見えます! :)別のノートでは、ファイルが使用されていると言われているので、逐次化コードと晴れのコードが両方ともazureがアップロードできないときに同時に実行されているとします。 ? – Damianos

+1

これは正しいです。エラーが示すように、ファイルはシリアル化プロセスによってロックされているため、Storage Clientライブラリはそのファイルに対してハンドルを取得できません。 –

関連する問題