无法访问已关闭的 Stream。抛出错误[重复]
Posted
技术标签:
【中文标题】无法访问已关闭的 Stream。抛出错误[重复]【英文标题】:Cannot access a closed Stream. Error throwing [duplicate] 【发布时间】:2017-12-15 09:00:03 【问题描述】:无法访问已关闭的 Stream。抛出错误
如何解决?
【问题讨论】:
请问createPDF
的实现是什么?
html1 = "AKHILESH"; //byte[] buffer = Encoding.ASCII.GetBytes(html); MemoryStream ms = createPDF(html1); //写入文件字符串路径 =Server.MapPath("~/Repositery Data/abc.pdf"); FileStream file = new FileStream(path, FileMode.Create, FileAccess.Write); ms.WriteTo(文件);文件。关闭(); ms.Close();
能否请您编辑问题: 1. 将代码从链接移至问题正文; 2.在问题中添加createPDF
实现。
阅读(并拥抱!):How do I ask a good question?
当您使用itext 标记问题时,this 可能会解决您的问题。如果是这样,您的问题将与该问题重复。
【参考方案1】:
这是因为在内存中打开东西的东西,例如流阅读器,StreamReader
在被处理时会自动关闭底层流。 using 语句会自动执行此操作。
但是,StreamWriter
仍在尝试处理流(此外,编写器的 using 语句现在正在尝试处理 StreamWriter
,然后尝试关闭流)。
解决此问题的最佳方法是:不要使用using
,也不要丢弃StreamReader
和StreamWriter
。看到这个question.
【讨论】:
好的,谢谢.. ...以上是关于无法访问已关闭的 Stream。抛出错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章
c# topmost模式窗口关闭后,有“无法访问已释放的对象”错误