【问题标题】:Need to transfer large file content from wcf service to java client (java web app)需要将大文件内容从 wcf 服务传输到 java 客户端(java web app)
【发布时间】:2013-09-10 13:17:56
【问题描述】:

基本上需要在wcf服务和java客户端之间传输大文件, 请问有人可以指路吗?

基本上我需要创建一个 wcf 服务,它需要读取 blob 内容(实际上是存储在 db 列中的文件内容)并 将其传递给 java Web 应用程序(作为 wcf 的客户端)。

文件大小可能从 1kb 到 20MB 不等。 到目前为止,我已经研究/检查了以下选项,但仍然无法最终确定我应该选择哪个,哪个可行,哪个不可行, 请有人指导我。

  1. 将文件内容作为字节[]传递: 我知道它会增加传递给客户端的数据大小,因为它将数据编码为 base 64 格式并将 base 64 编码嵌入到肥皂消息本身中,因此会使通信变慢并出现性能问题。 但这确实有效,但我不确定是否建议采用这种方法

  2. 共享一个可供客户端和 wcf 服务应用程序访问的 NetworkDrive/FTPFolder: 每个客户端所需的文件将首先由 wcf 存储在那里,然后客户端需要使用 java I/O 或 FTP 选项来读取它。 从数据大小/带宽的角度来看,这看起来不错,但在服务端和客户端都有额外的处理(需要通过 NetworkShared/FTP 文件夹存储/读取)

  3. 流式传输: 我不确定这对 Java 客户端是否可行,但我的理解是非 .net 客户端支持流式传输,但我不确定该怎么做??? 我了解流式传输我需要使用 basichttp 绑定,但我是否需要使用 DataContract 或 MessageContract 或任何会工作,然后在 java 客户端要做什么,我不确定。
  4. 在soap请求中使用MTOM方法传递大数据: 这看起来实际上具有专门设计用于解决 Web 服务调用中的大数据传输的支持,但必须对此进行进一步调查,目前我对此没有太多想法。你们中有人对此有什么建议吗?

我知道问题有点冗长,但我必须将我尝试过的所有 4 个选项以及我的疑虑/发现都放在每个选项中,以便你们都可以在这些选项中提出建议,或者也可能是新选项你会知道我已经尝试过什么,因此可以更有效地指导我。

【问题讨论】:

    标签: wcf streaming soap-client mtom large-data


    【解决方案1】:

    我和你的处境相同,我可以根据经验表明选项 1 对于超过几 MB 的任何东西来说都是一个糟糕的选择。

    在我自己的系统中,上传时间呈指数级增长,25MB 文件的上传时间超过 30 分钟。

    我已经运行了一些时间,其中大部分是在将文件从 .NET 客户端传输到 Java Web 服务时。我们的 Web 服务是一组 3rd 方服务的外观;使用第 3 方提供的内置客户端(在业务环境中不可行)明显更快 - 25MB 文件不到 5 分钟。上传到我们的客户端应用程序也很快。

    我们已经尝试过 MTOM,除非我们实施不正确,否则并没有看到巨大的改进(速度提升不到 10%)。

    下一个调用端口将是选项 2 - 文件传输相对较快,因此通过将文件直接上传到其中一个 Web 服务主机,我希望这会大大加快速度 - 如果我得到一些有意义的结果,我会添加他们到我的帖子。

    【讨论】:

    • 我很高兴有人提供意见,谢谢。顺便说一句,您对选项 3 有任何输入/经验吗?我的意思是我从我的研究/阅读中了解到,使用 basichttpbinding 可以将流式传输到 Web 服务客户端,但我只是不知道在 java 客户端需要编码/完成什么,如何配置。当涉及到 java web 客户端时,完全没有方向。有什么意见吗?
    • 我还没有深入研究选项 3,但我的理解是这是可能的。如果 2 不可行,那么我们将研究 3 - 抱歉,我无法提供更多帮助。
    • @ SketchyBFC :我希望选择选项 2,但由于我的应用程序的客户端将在安全区域工作,由于组织政策,我们无法使用网络共享驱动器或 ftp对他们来说,因此我排除了选项 2。目前我正在研究其他一些东西,但很快就会尝试选项 3。如果效果好,会通知您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    相关资源
    最近更新 更多