我正在开发一个.NET CF客户端应用程序,并使用Web服务进行数据传输。我正在使用SharpZipLib压缩传输的数据集,以便我可以知道传输的字节数组大小。
我想知道有没有一种简单的方法来确定单个调用的完整请求大小(HTML头文件、SOAP包裹和实际数据)。我真的想尽量减少GPRS连接成本。
谢谢。
我正在开发一个.NET CF客户端应用程序,并使用Web服务进行数据传输。我正在使用SharpZipLib压缩传输的数据集,以便我可以知道传输的字节数组大小。
我想知道有没有一种简单的方法来确定单个调用的完整请求大小(HTML头文件、SOAP包裹和实际数据)。我真的想尽量减少GPRS连接成本。
谢谢。
关于整个问题;抱歉,我不知道除了使用网络追踪器之外有什么其他方法...
然而,我能谦虚地提出数据集和SOAP并非在带宽受限设备上总是最佳选择吗?压缩可以很好地完成工作,但并非总是理想的选择。除非您需要提供的特性,否则还有更简单的协议可用(例如POX,也许使用内置协议压缩(GZIP/Deflate))。
在另一端...如果你能将事物表述为信息,那么像protobuf-net这样的序列化工具可能会很有用(与原始二进制帖子结合使用);它们非常数据密集(这样试图使用压缩必然会增加大小)。但是,您需要在客户端自己进行数据/更改跟踪,并且RPC堆栈尚未完成(我有正在工作的原型代码,但我还没有提交它,因为我仍在单元测试)。服务器也会不同(即不是asmx或其他 - 可能是改装的处理程序或MVC控制器)。
作为另一种选择 - ADO.NET数据服务可能会引起兴趣,特别是以JSON模式(为了带宽,再次使用协议压缩)。
WCF支持消息跟踪,可以让您查看生成的SOAP+消息的大小。您可以使用这些跟踪文件确定您正在寻找的内容,尽管通过通信压缩发送的字节将不那么明显。对于实际的在线大小,Wireshark是一个不错的选择。或者您可以压缩从WCF跟踪中提取的消息并获得一个粗略的想法。