有关使用WCF传输文件的一些问题

时间:2009-03-04 10:02:57

标签: wcf file-transfer

我有一个托管在Windows服务上的WCF服务。现在我想为此服务添加文件传输功能,但我有以下问题;考虑到传输文件的方式和文件都不大(大约10MB):

1:我在MSDN中读到“流式传输中发生的操作最多可以包含一个输入或输出参数”。这是否意味着我不能使用多个参数或什么操作?

2:如果我使用 Streamed 进行传输模式,我是否必须关心在“in”或“out”参数是集合的操作中传输的数据大小?

3:我是否必须更改TransferMode以外的任何其他内容才能将模式设置为Streamed?

感谢。

1 个答案:

答案 0 :(得分:3)

在WCF文件传输的某个方向上查看this post。您应该使用MTOM编码器。这篇文章有几个很好的理由,并有一些例子。

  1. 只要使用MTOM进行全部流编码,大小就无关紧要了。只需确保在绑定配置上设置maxReceivedMessageSize。
  2. 并为消息创建消息合同。见下文:
  3. 示例邮件合同:

    [MessageContract()]
    public class FileTransferRequest
    {
      [MessageHeader(MustUnderstand = true)]
      public string FileName;
    
      [MessageBodyMember(Order = 1)]
      public System.IO.Stream Data;
    }