我有一个 WCF Web 服务,它需要返回一个文件(可以由字节数组或流返回)。我首先在界面中返回一个 byte[],这导致客户端对于100MB文件的内存使用量(峰值)达到400MB 。由于我需要减少客户端内存使用量,我添加了另一个接口,将文件流式传输回客户端。这一次,我见证了客户端增加了600MB(再次达到峰值)。如何减少客户端内存使用量?
我当前的服务器实现如下(流式传输):
[ServiceContract]
public interface IOmriService
{
[OperationContract]
Stream GetAudio(string input);
}
应用程序配置:
<bindings>
<basicHttpBinding>
<binding name="HttpStreaming" maxReceivedMessageSize="67108864" transferMode="Streamed"/>
</basicHttpBinding>
</bindings>