English 中文(简体)
确定在.NET CF中进行Web服务调用时传输的数据大小。
原标题:
  • 时间:2009-03-11 14:03:07
  •  标签:

我正在开发一个.NET CF客户端应用程序,并使用Web服务进行数据传输。我正在使用SharpZipLib压缩传输的数据集,以便我可以知道传输的字节数组大小。

我想知道有没有一种简单的方法来确定单个调用的完整请求大小(HTML头文件、SOAP包裹和实际数据)。我真的想尽量减少GPRS连接成本。

谢谢。

问题回答

关于整个问题;抱歉,我不知道除了使用网络追踪器之外有什么其他方法...

然而,我能谦虚地提出数据集和SOAP并非在带宽受限设备上总是最佳选择吗?压缩可以很好地完成工作,但并非总是理想的选择。除非您需要提供的特性,否则还有更简单的协议可用(例如POX,也许使用内置协议压缩(GZIP/Deflate))。

在另一端...如果你能将事物表述为信息,那么像protobuf-net这样的序列化工具可能会很有用(与原始二进制帖子结合使用);它们非常数据密集(这样试图使用压缩必然会增加大小)。但是,您需要在客户端自己进行数据/更改跟踪,并且RPC堆栈尚未完成(我有正在工作的原型代码,但我还没有提交它,因为我仍在单元测试)。服务器也会不同(即不是asmx或其他 - 可能是改装的处理程序或MVC控制器)。

作为另一种选择 - ADO.NET数据服务可能会引起兴趣,特别是以JSON模式(为了带宽,再次使用协议压缩)。

WCF支持消息跟踪,可以让您查看生成的SOAP+消息的大小。您可以使用这些跟踪文件确定您正在寻找的内容,尽管通过通信压缩发送的字节将不那么明显。对于实际的在线大小,Wireshark是一个不错的选择。或者您可以压缩从WCF跟踪中提取的消息并获得一个粗略的想法。

Wireshark是一款著名的协议分析工具。然而,它可能对于您的需求而言有点过头了。

还请查看Fiddler。这更容易,并且它将允许您监控来自模拟器的流量。

tcpmon 是一个 Java 工具,可以坐在服务器和客户端之间。您需要在应用程序中编辑端点,将其连接到tcpmon,并配置tcpmon以代理所有请求到实际的Web服务。这不应该超过10分钟——它是一个非常简单的工具。然后,您可以在tcpmon中监视原始请求,或使用 Fiddler 捕获流量。





相关问题
热门标签