如何在WCF中压缩和传输文件的文件夹

时间:2015-08-25 15:07:16

标签: c# wcf compression streaming

我有一个包含这些端点的WCF服务:

  1. NET TCP端点。
  2. REST端点。
  3. 我的服务托管在IIS上。

    我在webservice中有一个函数,我发送一个文件夹名称(根据输入改变。让我们说“FolderData”)。 Web服务查看主文件夹(Let Say D:\ MasterDumps)并找到文件夹“FolderData”。该文件夹通常包含很少的XML文件和一个Excel文件。文件夹的大小从1 MB到100 MB不等(最小和最大)。

    我想要的是将此文件夹“FolderData”压缩并发送到客户端。在客户端中,我想提取内容并读取文件并在我的业务逻辑中使用它们。

    我正在查看此utility以解压缩和解压缩文件。对于转移,我正在寻找返回流。

    显然我想尽可能多地压缩数据,以便通过网络传输更少的数据。

    如果我走在正确的道路上,我想提出一些建议。也有更好的方法来实现这一目标。可能是一个更好的压缩方法(.NET库),如果我可以通过线路发送流时应用压缩。

    任何建议都表示赞赏。博客或链接会有所帮助。

2 个答案:

答案 0 :(得分:0)

请考虑:

  1. 在WCF中使用流式传输模式(请参阅“流式数据”一章,Streaming Message Transfer, MSDN)并相应地更新流式数据的合同(请参阅How to: Enable Streaming, MSDN)。
  2. 使用支持流式传输的相应ZIP压缩/解压缩库(例如,来自.NET Framework 4.5的ZipArchive ClassDotNetZip等)。

答案 1 :(得分:0)

考虑一下我发现可能对你有所帮助的链接。

  1. EnablingDynamicCompressionGzipDeflateForWCF

  2. MSDN