作为 WebOperationContext.Current.CreateStreamResponse() 的一部分,我将一些图像作为流返回
我想知道框架是否在返回后处理此流的关闭。或者,如果您必须在响应中执行某些操作才能正确关闭流。
谢谢。
作为 WebOperationContext.Current.CreateStreamResponse() 的一部分,我将一些图像作为流返回
我想知道框架是否在返回后处理此流的关闭。或者,如果您必须在响应中执行某些操作才能正确关闭流。
谢谢。
好吧,根据我的发现, CreateStreamResponse() 返回一个Message,它实现了 IDisposable,因此最好将返回的对象包装在一个using
语句中。那应该可以正确关闭流。
在这里实现 using 不是一个解决方案,我遇到了返回内容很大(3 MB)的情况,因为我将 WebOperationContext.Current.CreateStreamResponse() 包装在 using 语句中,流在内容完成之前就关闭了,因此客户的响应是空白的。
我所做的只是将流输出复制到一个字符串并在使用包装内使用 WebOperationContext.Current.CreateTextResponse()。