无法访问已关闭的 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,也不要丢弃StreamReaderStreamWriter。看到这个question.

【讨论】:

好的,谢谢.. ...

以上是关于无法访问已关闭的 Stream。抛出错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

对 WCF 的 WPF 服务调用无法访问已释放的对象

从会话中获取文件时出现“无法访问已关闭的文件”错误消息

从会话中获取文件时出现“无法访问已关闭的文件”错误消息

c# topmost模式窗口关闭后,有“无法访问已释放的对象”错误

c#-iTextSharp-无法访问关闭的Stream。使用PDFReader时

Stream.WriteAsync 抛出远程主机关闭连接异常