WCF MTOM功能特点介绍

开发 开发工具
WCF MTOM作为一个机制,可以帮助我们将消息传输优化机制消息编码与WSHttpBinding一起来使用。在这里我们将会为大家详细介绍相关应用方法。

作为一款.NET Framework 3.5重要组成部件的WCF,它在实际应用中占据着一个非常重要的地位。在这里我们将会为大家讲解一个关于WCF MTOM的示例。此示例演示如何将消息传输优化机制 (MTOM) 消息编码与 WSHttpBinding 一起使用。WCF MTOM是一种机制,用来以原始字节形式传输包含 SOAP 消息的较大二进制附件,从而使所传输的消息较小。

默认情况下,WSHttpBinding 以正常文本 XML 形式发送和接收消息。若要允许发送和接收 MTOM 消息,请在绑定的配置中设置 messageEncoding 属性 (Attribute)(如下面的示例代码中所示),或者使用 MessageEncoding 属性 (Property) 直接在绑定中进行设置。服务或客户端现在可以发送和接收 MTOM 消息了。

< wsHttpBinding> 
< binding name="WSHttpBinding_IUpload" messageEncoding="Mtom"/> 
< /wsHttpBinding> 
  • 1.
  • 2.
  • 3.

WCF MTOM编码器可以优化字节和流的数组。在下面的示例中,操作使用 Stream 参数,因此可以进行优化。

[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]  
public interface IUpload  
{  
[OperationContract]  
int Upload(Stream data);  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

为该示例选择的协定会将二进制数据传输到服务,并将上载的字节数作为返回值接收。在安装服务之后运行客户端时,服务会显示数字 1000,这表示收到了全部 1000 个字节。剩下的输出列出了在各种负载情况下经过优化和未经优化的消息大小。

Output:  
1000  
Text encoding with a 100 byte payload: 433  
MTOM encoding with a 100 byte payload: 912  
Text encoding with a 1000 byte payload: 1633  
MTOM encoding with a 1000 byte payload: 2080  
Text encoding with a 10000 byte payload: 13633  
MTOM encoding with a 10000 byte payload: 11080  
Text encoding with a 100000 byte payload: 133633  
MTOM encoding with a 100000 byte payload: 101080  
Text encoding with a 1000000 byte payload: 1333633  
MTOM encoding with a 1000000 byte payload: 1001080  
Press < ENTER> to terminate client. 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

以上就我们为大家介绍的WCF MTOM相关应用技巧。

【编辑推荐】

  1. WCF dataContractSerializer设置技巧讲解
  2. WCF重载应用特点剖析
  3. WCF异步上传相关技巧分享
  4. WCF传较大数据技巧应用分析
  5. WCF服务启动特殊方法分享
责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-21 17:40:25

WCF会话

2009-12-04 17:35:51

WCF 服务

2010-02-22 17:13:40

WCF会话状态

2010-02-23 13:46:37

WCF数据契约

2010-02-22 16:34:17

WCF性能计数器

2009-12-07 10:27:51

WCF分页

2010-02-23 09:34:15

WCF重载

2010-02-25 14:26:48

WCF特点

2010-02-22 13:35:03

WCF异常处理

2010-02-24 14:20:27

WCF并发模型

2009-12-07 09:23:05

2009-11-05 11:31:00

WCF绑定

2009-12-07 18:33:31

WCF Service

2009-11-09 17:30:20

WCF元数据

2009-11-09 17:55:13

WCF缓存

2009-12-22 17:30:47

WCF Address

2009-12-22 15:02:40

WCF限流

2009-12-22 15:14:33

WCF调用

2010-02-24 15:28:59

WCF ABC

2010-02-22 14:18:34

WCF服务验证
点赞
收藏

51CTO技术栈公众号