确定.NET CF中Web服务调用的传输数据大小

时间:2009-03-11 14:03:08

标签: .net web-services .net-3.5 compact-framework gprs

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

我想知道是否有一种简单的方法可以确定完成一次调用的请求大小(html headerder,soap envelops和实际数据)。我真的想最大限度地降低GPRS连接成本。

...谢谢

3 个答案:

答案 0 :(得分:1)

重新提出整体问题;对不起,我不知道使用网络跟踪器......

然而;我可以谦虚地提出数据集和SOAP并不总是带宽受限设备的最佳选择吗?压缩做得很好,但并不总是理想的。除非您需要提供的功能,否则可以使用更简单的协议(例如POX,可能使用内置协议压缩(GZIP / Deflate))。

另一方面......如果你可以将内容短语作为消息,那么像protobuf-net这样的序列化可能会很有用(与原始二进制帖子结合使用);它们是非常密集的数据(因此尝试使用压缩不可避免地增加了大小)。但是,您需要在客户端进行自己的数据/更改跟踪,并且RPC堆栈尚未完成(我已经使用了原型代码,但我还没有提交它,因为我仍然单元测试)。服务器也会不同(即不是asmx或其他任何东西 - 可能是装配好的处理程序或MVC控制器)。

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

答案 1 :(得分:0)

Wireshark是一种着名的协议分析工具。但是,根据您的需求,这可能是一种过度杀伤。

同时结帐Fiddler。这更容易,它允许您监视来自模拟器的流量。

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

答案 2 :(得分:0)

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