簡體   English   中英

為什么Windows Azure存儲Blob XML被截斷?

[英]Why is Windows Azure storage blob XML truncated?

我正在嘗試將xml文件保存到Blob中。 我沒有任何錯誤,除了瀏覽到Blob網址時,一切都似乎正常,我看到一個空白頁。 如果查看網頁的源代碼,我可以看到我的xml但被截斷了。
這是te代碼。

StringBuilder fileString = new StringBuilder();
XmlWriterSettings xmlSettings=new XmlWriterSettings
{
    Encoding = new UTF8Encoding(false)
};
using (XmlWriter writer = XmlWriter.Create(fileString, xmlSettings))
{
    bla bla
}
CloudBlockBlob fileBlob = container.GetBlockBlobReference("site.xml");
fileBlob.UploadText(fileString.ToString());

我在其他一些文章中找到了解決方案(盡管將編寫者設置為utf-8,但與文本編碼始終為utf-16有關,但問題不多)。 我現在正在使用Stream,它工作正常。

MemoryStream fileString = new MemoryStream();
XmlWriterSettings xmlSettings=new XmlWriterSettings
{
    Encoding = Encoding.UTF8,
    Indent = true
};
using (XmlWriter writer = XmlWriter.Create(fileString, xmlSettings))
{
    bla bla
}
CloudBlockBlob fileBlob = container.GetBlockBlobReference("site.xml");
fileBlob.UploadText(StreamToString(fileString));

private static string StreamToString(Stream stream)
{
    stream.Position = 0;
    var reader = new StreamReader(stream);
    return reader.ReadToEnd();
}

如果您決定使用Stream ,那么還可以使用UploadFromStream而不是UploadText來上載它,后者會將字符串編碼為字節序列,創建內存流,並始終調用UploadFromStream

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM