Exception handling Windows Azure:未处理参数异常
我希望我的Azure应用程序创建一个blob并将数据写入其中。当我尝试它时,我得到了一个例外说明 异常未处理 流不可写 这是我的密码Exception handling Windows Azure:未处理参数异常,exception-handling,azure,Exception Handling,Azure,我希望我的Azure应用程序创建一个blob并将数据写入其中。当我尝试它时,我得到了一个例外说明 异常未处理 流不可写 这是我的密码 var ms = new MemoryStream(); for (int k = 0; k < 10; k++) { using (StreamWriter sw = new StreamWriter(ms)) {
var ms = new MemoryStream();
for (int k = 0; k < 10; k++)
{
using (StreamWriter sw = new StreamWriter(ms))
{
string val = k.ToString();
if (k + 1 != len)
val = val + " ";
sw.Write(val);
sw.Flush();
}
}
ms.Position = 0;
blob.UploadFromStream(ms);
var ms=newmemoryStream();
对于(int k=0;k<10;k++)
{
使用(StreamWriter sw=新StreamWriter(ms))
{
字符串val=k.ToString();
如果(k+1!=len)
val=val+“”;
sw.Write(val);
sw.Flush();
}
}
ms.Position=0;
blob.UploadFromStream(毫秒);
我的代码正在为k=0执行。当k=1时引发异常。
有人能告诉我如何解决这个异常吗
此外,这是写入blob的正确步骤吗。如果没有,我哪里出错了以及如何纠正它。我的猜测是StreamWriter的Finalize方法关闭了底层流(因此下次通过循环时,您无法写入该MemoryStream) 我认为可以通过在整个循环中放置“using(StreamWriter sw=newstreamwriter(ms))块来解决这个问题。无论如何,它可能比每次创建一个新的StreamWriter更有效 在任何情况下,如果您只是在写文本,最好执行以下操作:
StringBuilder sb = new StringBuilder();
for (int k = 0; k < 10; k++)
{
sb.Append(k.ToString());
if (k + 1 != len) sb.Append(" ");
}
blob.UploadText(sb.ToString());
blob.UploadText(string.Join(" ", Enumerable.Range(0, 10).Select(k => k.ToString()).ToArray()));