我在 azure 中部署了 WCF 服务。我有一个使用此服务的客户端,该服务在 Windows Phone 7 上运行。一切正常,但是当我尝试向服务器发送一些较大的文件或丢失项目的枚举时,发生了错误。我发现可以在配置文件中配置最大消息大小、最大数组长度等。所以我在默认值中添加了几个零并且它起作用了。但是,我对这个解决方案不满意,因为它很脏。
我的问题是:
1.盲目地增加消息大小限制的缺点是什么,它如何影响服务?
2.我有什么替代方案而不是增加消息大小?
特别是,我需要向服务器发送包含相同元数据和大量位置点的 GPS 轨迹。
如果我正确理解概念,默认情况下 wcf 使用基于 XML 的 SOAP。所以发送的对象被编码为 XML(类似于 .net 中的 XML 序列化?)。那么它可以以某种方式切换到某种二进制模式来发送 BLOBS 或上传大型对象流吗?还是我唯一的选择是完全绕过 WCF 服务并直接上传到服务器存储(如 SQL azure 或 Azure Blob 服务),这会公开 API 来这样做?
谢谢你。