WCF MTOM功能特点介绍
创始人
2024-06-23 09:00:58
0

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

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

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

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

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

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

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

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

【编辑推荐】

  1. WCF dataContractSerializer设置技巧讲解
  2. WCF重载应用特点剖析
  3. WCF异步上传相关技巧分享
  4. WCF传较大数据技巧应用分析
  5. WCF服务启动特殊方法分享

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...