基本上需要在wcf服务和java客户端之间传输大文件,有人可以指点吗?
基本上我需要创建一个 wcf 服务,该服务需要读取 blob内容(实际上是存储在 db 列中的文件内容)并将其传递给 java web 应用程序(作为 wcf 的客户端)。
文件大小可能从 1kb 到 20MB不等。到目前为止,我已经研究/检查了以下选项,但仍然无法最终确定我应该使用哪个,哪个可行,哪个不可行,请有人指导我。
将文件内容作为 byte[] 传递:我知道它会增加传递给客户端的数据大小,因为它将数据编码为 base 64 格式并将 base 64 编码嵌入到soap消息本身中,因此会使通信速度变慢并且存在性能问题。 但这肯定有效,但我不确定是否建议采用这种方法。
共享客户端和 wcf 服务应用程序均可访问的 NetworkDrive/FTPFolder:客户端所需的此文件将首先由 wcf 存储在那里,然后客户端需要使用 java I/O 或 FTP 选项来读取它。从数据大小/带宽的角度来看,这看起来不错,但在服务端和客户端都有额外的处理(需要通过 NetworkShared/FTP 文件夹存储/读取)
- 流式传输:我不确定这对于 Java 客户端是否可行,但我的理解是非 .net 客户端支持流式传输,但我不确定该怎么做???我了解流式传输我需要使用 basichttp 绑定,但我是否需要使用 DataContract 或 MessageContract 或任何会起作用,然后在 java 客户端要做什么,我不确定。
- 使用 MTOM 方法在soap 请求中传递大数据:这看起来实际上具有专门设计用于解决Web 服务调用中的大数据传输的支持,但必须对此进行进一步调查,目前我对此没有太多想法。你们中有人对此有什么建议吗?
我知道问题有点长,但我必须把我尝试过的所有 4 个选项和我的担忧/发现都放在每个选项中,以便你们都可以在这些选项中提出建议,或者可能是新选项,你也会知道我已经尝试过什么,所以可以更有效地指导我。