ファイルを返す必要がある WCF Web サービスがあります (バイト配列またはストリーミングで返すことができます)。私は最初にインターフェイスで byte[] を返しました。これにより、クライアントは100MBのファイルに対して (ピーク時に) 400MBのメモリ使用量に達しました。クライアントのメモリ使用量を減らす必要があるため、ファイルをクライアントにストリーミングする別のインターフェイスを追加しました。今回は、クライアントで600MBの増加が見られました (これもピーク時です)。クライアントのメモリ使用量を減らすにはどうすればよいですか?
サーバーの現在の実装は次のとおりです(ストリーミング):
[ServiceContract]
public interface IOmriService
{
[OperationContract]
Stream GetAudio(string input);
}
App.config:
<bindings>
<basicHttpBinding>
<binding name="HttpStreaming" maxReceivedMessageSize="67108864" transferMode="Streamed"/>
</basicHttpBinding>
</bindings>