关于使用WCF传输文件的几个问题

关于使用WCF传输文件的几个问题,wcf,file-transfer,Wcf,File Transfer,我有一个托管在Windows服务上的WCF服务。现在我想将文件传输功能添加到此服务,但我有以下问题:;考虑到传输文件是双向的,而且文件不大(大约10MB): 1:我在文章中读到,“在流传输中发生的操作最多可以与一个输入或输出参数签订合同”。这是不是意味着我不能有一个包含多个参数的操作 2:如果我使用流传输作为传输模式,我是否需要关心在“输入”或“输出”参数为集合的操作中传输的数据的大小 3:为了将模式设置为流式传输,我是否必须更改传输模式以外的任何其他内容?了解有关WCF文件传输的一些方向。您应

我有一个托管在Windows服务上的WCF服务。现在我想将文件传输功能添加到此服务,但我有以下问题:;考虑到传输文件是双向的,而且文件不大(大约10MB):

1:我在文章中读到,“在流传输中发生的操作最多可以与一个输入或输出参数签订合同”。这是不是意味着我不能有一个包含多个参数的操作

2:如果我使用流传输作为传输模式,我是否需要关心在“输入”或“输出”参数为集合的操作中传输的数据的大小

3:为了将模式设置为流式传输,我是否必须更改传输模式以外的任何其他内容?

了解有关WCF文件传输的一些方向。您应该使用MTOM编码器。这篇文章有一些很好的理由和例子

  • 只要全部使用MTOM进行流式编码,大小就不重要。只需确保在绑定配置上设置maxReceivedMessageSize
  • 并为消息创建消息约定。见下文:
  • 示例消息契约:

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