[英]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.