R*****i 发帖数: 2126 | 1 我现在需要用WCF作一个同步服务,就是把客户端的数据库和文件跟服务器的数据库和
文件相互更新。我们的客户都在条件特别恶劣的地方,也就是说,网络的带宽不仅窄,
而且流量费用巨高,所以需要尽量减少流量。我们公司的技术大牛(Lead Developer)
已经做过类似的同步服务。他的做法如下,不管是数据库的数据,还是文件,他都把它
们转化成byte[]。如果是数据库的数据,他把它们压缩成byte[],如果是文件,就把他
切成一块一块(chunk)传送,我查了一下他的设定,绑定直接用的是wsHttpBinding,里
面用的都是缺省的设置。我想问一下大牛,他的这种做法有没有问题啊?
我这两天一直在琢磨,上网查资料,我总感觉数据库的数据和文件应该分别对待,数据
库的数据可以用wsHttpBinding,但是文件应该用Stream来传输(wsHttpBinding不支持
Stream),现在的问题是basicHttpBinding的Security好像不容易搞定,要知道,上传/
下载文件也需要传递用户名和密码,然后根据服务器里的数据库数据来决定是否授权。
请指点迷津。 | m********o 发帖数: 796 | | s******e 发帖数: 431 | 3 since you already divided files into small chunks, why you still want the
stream transfer mode? It is nothing to do with the type of data you want to
transfer. It depends on how large the data you want to transfer each time. | R*****i 发帖数: 2126 | 4
to
由于带宽的限制和流量的代价,所以我们希望尽量减少流量。
现在的代码,上传的时候,在客户端(代码由我们提供)人为地切割成chunk,然后用普
通的wsHttpBinding传输,最后一块传完以后拼装(为了减少内存,每一块都放进了临
时表里了)。但是我想的是,文件是不是用stream传起来更快更高效?但是stream在
wsHttpBinding里不支持,所以如果要用stream,就只能用basicHttpBinding,但是
basicHttpBinding好像有security方面的麻烦事。
下载也跟上传类似,文件转成byte[],通过buffer传输。
我对wcf不熟,所以很纠结。
【在 s******e 的大作中提到】 : since you already divided files into small chunks, why you still want the : stream transfer mode? It is nothing to do with the type of data you want to : transfer. It depends on how large the data you want to transfer each time.
|
|