wcf - 关于使用WCF传输文件的一些问题

标签 wcf file-transfer

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

1:我已阅读MSDN “跨流式传输发生的操作最多可以与一个输入或输出参数签订契约(Contract)”。这是否意味着我不能进行具有多个参数的操作或者什么?

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

3:为了将模式设置为 Streamed,我是否需要更改除 TransferMode 之外的其他任何内容?

最佳答案

看看this post有关 WCF 文件传输的一些指导。您应该使用 MTOM 编码器。这篇文章给出了一些很好的理由,并提供了一些示例。

  1. 是的。
  2. 只要全部使用 MTOM 进行流式编码,大小就不重要。只需确保在绑定(bind)配置上设置 maxReceivedMessageSize 即可。
  3. 然后为消息创建消息契约。见下文:

消息合约示例:

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

  [MessageBodyMember(Order = 1)]
  public System.IO.Stream Data;
}

关于wcf - 关于使用WCF传输文件的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/609936/

相关文章:

windows - Windows 服务上托管的 WCF 服务的 SSL 证书

javascript - 收到错误 : JavaScript runtime error: Circular reference in value argument not supported

PHP 文件传输 - 这是如何工作的?

java - 套接字文件传输

linux - 是否有任何过程可以将文件从 Windows 主机复制到虚拟机,反之亦然?

http - 如何在 go 中以流的形式上传文件?

c# - 我们是否需要处理资源以及为什么我们需要在 WCF 中

c# - 如何确定 WCF 服务已准备就绪?

javascript - 如何使用meteor.js监控浏览器中的数据传输?

wcf - 如何在 node.js 中使用 WCF soap web 服务