我需要创建一个具有下载文件功能的 WCF 服务。此 WCF 将由 Delphi 应用程序使用。
问题:将要下载的文件非常大,可能会导致Delphi端出现内存问题。到目前为止,我有这个代码:
[OperationContract]
byte[] DownloadFile(string filePath);
但是此代码将导致客户端应用程序将所有数据保存在内存中,这可能是一个问题。
我已经读到 WCF 能够流式传输数据,您可以在以下位置阅读:如何:启用流式传输
但我对从 MSDN 截取的这段代码有疑问:
[OperationContract]
Stream GetStream(string data);
在客户端,我想将 a 传递TFileStream
给函数。通过使用TFileStream
每个字节读取将直接进入磁盘。但是函数返回一个流,而我想要的将是不可能的,因为流不是函数的参数。
如何将文件从 WCF 服务直接下载到磁盘?