2

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

1:我在MSDN中读到“跨流传输发生的操作最多可以与一个输入或输出参数签订合同”。这是否意味着我不能进行具有多个参数的操作或什么?

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

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

4

1 回答 1

3

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

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

示例消息合约:

[MessageContract()]
public class FileTransferRequest
{
  [MessageHeader(MustUnderstand = true)]
  public string FileName;

  [MessageBodyMember(Order = 1)]
  public System.IO.Stream Data;
}
于 2009-03-04T12:28:20.593 回答