繁体   English   中英

从netTcpBinding WCF服务返回的消息大于从ASMX Web服务返回的消息

[英]Messages returned from a netTcpBinding WCF service are larger than those returned from an ASMX web service

基本上,我已经创建了一个netTcpBinding WCF服务,该服务使用的方法返回一组从500到50000对象的简单对象。 这些对象包含一些字符串,int和DateTime属性。 调用此方法后,我试图测试内存消耗。 我注意到,当我使用经典的ASMX Web服务执行相同的测试时,这种情况下的内存消耗较少。 据我了解,netTcpBinding WCF服务中的消息是二进制编码的,而在ASMX Web服务中它们是XML格式的,因此在前一种情况下,消息应该较小。 但是,从netTcpBinding服务返回的消息几乎是ASMX消息大小的2倍。 知道为什么会这样吗?

我的理解是,ASMX仅基于HTTP使用SOAP协议来传输数据,而WCF具有多个绑定和传输选项。

TCP / IP作为WebService与使用WebService的对象之间的流连接进行操作。 TCP / IP将重新传输所有丢失的数据包(所有连接都会丢失一些数据包),这又可能导致传输的整体数据更大。

请参阅: http : //msdn.microsoft.com/en-us/library/ms733769(v=vs.110).aspx

问题实际上在于您如何计算内存损失。 您正在使用GC类还是正在测量请求标头的总大小?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM