【问题标题】:Does a stream close when you return it in a WebOperationContext?当您在 WebOperationContext 中返回流时,它会关闭吗?
【发布时间】:2012-04-16 14:18:44
【问题描述】:

作为 WebOperationContext.Current.CreateStreamResponse() 的一部分,我将一些图像作为流返回

我想知道框架是否在该流返回后处理它的关闭。或者,如果您必须在响应中执行某些操作才能正确关闭流。

谢谢。

【问题讨论】:

  • 框架关闭返回的流.....

标签: c# asp.net weboperationcontext


【解决方案1】:

在这里实现 using 不是一个解决方案,我遇到了返回内容很大 (3 MB) 的情况,因为我将 WebOperationContext.Current.CreateStreamResponse() 包装在 using 语句中,流在内容完成之前就关闭了,因此客户端的响应是空白的。

我所做的只是将流输出复制到一个字符串并在 using wrap 中使用 WebOperationContext.Current.CreateTextResponse()。

【讨论】:

    【解决方案2】:

    嗯,根据我的发现,CreateStreamResponse() 返回一个 Message,它实现了 IDisposable,因此最好将返回的对象包装在 using 语句中。那应该可以正确关闭流。

    【讨论】:

      猜你喜欢
      • 2016-02-12
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多