【问题标题】:Passing large files to WCF service将大文件传递给 WCF 服务
【发布时间】:2008-09-05 16:49:07
【问题描述】:

我们已经通过网络公开了一项加密服务。 tcp。大多数时候,该服务用于加密/解密字符串。但是,我们时不时地需要对大型文档(pdf、JPG、bmp 等)进行加密。

对于这样的场景,最好的端点设置是什么?我应该接受/返回流吗?我已经阅读了很多这方面的内容,但是没有人给出大文件不经常出现时该怎么做的指导。

【问题讨论】:

    标签: wcf web-services


    【解决方案1】:

    MSDN 很好地描述了how to enable streaming over WCF

    注意,如果客户端和服务器之间的链接需要加密,那么您需要“滚动自己的”加密机制。默认的net.tcp 加密需要 X.509 证书,它不适用于流,因为这种加密需要一次性处理整个消息而不是字节流。

    这又意味着您将无法使用默认的 WCF 安全机制对客户端进行身份验证,因为身份验证需要加密。我知道的唯一解决方法是在客户端和服务器上实现您自己的自定义行为扩展来处理身份验证。

    关于如何添加自定义行为扩展的一个非常好的参考是here:这也记录了如何提供自定义配置(我认为目前 MSDN 文档中没有讨论过这一点)。

    【讨论】:

      【解决方案2】:

      您可以遵循的一种模式是使用异步服务来处理共享文件系统位置上的文件:

      1. 将要加密的文件放在共享位置
      2. 调用服务并告诉它加密文件,同时传递文件的位置和名称,以及客户端回调服务的地址
      3. 该服务将加密文件并将加密副本放置在共享位置(与放置未加密文件的位置相同或不同,无关紧要)
      4. 服务会回调客户端,提供加密文件的名称和位置
      5. 客户端可以检索加密文件

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-24
        相关资源
        最近更新 更多