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

本文关键字:消息 返回 服务 Web ASMX netTcpBinding WCF 大于 | 更新日期: 2023-09-27 18:32:13

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

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

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

TCP/IP 作为 Web 服务和使用 Web 服务的对象之间的流连接运行。TCP/IP 将重新传输任何丢失的数据包(所有连接都会丢失一些数据包),这反过来可能导致传输的数据总量更大。

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

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