【问题标题】:Serialize XML and save to Azure , C#序列化 XML 并保存到 Azure , C#
【发布时间】:2016-05-11 08:49:40
【问题描述】:

我正在尝试序列化一个 xml 文件并将其保存到 azure。序列化很顺利,代码在运行天蓝色上传的行时没有遇到任何问题。但我不知道它是否已上传。关于如何从服务器检索已上传的响应的任何想法?

下面是我的天蓝色上传代码:

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

【问题讨论】:

    标签: c# xml azure serialization xmlserializer


    【解决方案1】:

    如果您在以下代码行中没有收到任何错误:

    blockBlob.UploadFromStream(fileStream);
    

    这意味着您的文件已成功上传。

    为了您的安心,您可以尝试获取 blob 的属性并检查它的大小。它应该超过 0 个字节(假设您的 XML 文件的大小超过 0 个字节)。你会做这样的事情:

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

    【讨论】:

    • 谢谢!好像行得通! :) 另一方面,如果序列化代码和 azure 代码同时运行,则 azure 无法上传,因为它说文件正在被使用。如果我让序列化只运行一次,那应该会消失?
    • 这是正确的。正如错误所说,该文件被您的序列化过程锁定,因此存储客户端库无法处理该文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2011-05-12
    • 1970-01-01
    相关资源
    最近更新 更多