传说中的WCF(9):流与文件传输】的更多相关文章

WCF开启流模式,主要是设置一个叫TransferMode的属性,所以,你看看哪些Binding的派生类有这个属性就可以了. TransferMode其实是一个举枚,看看它的几个有效值: Buffered:缓冲模式,说白了就是在内存中缓冲,一次调用就把整个消息读/写完,也就是我们最常用的方式,就是普通的操作协定的调用方式: StreamedRequest:只是在请求的时候使用流,说简单一点就是在传入方法的参数使用流,如 int MyMethod(System.IO.Stream stream);…
在使用Socket/TCP来传输文件,弄起来不仅会有些复杂,而且较经典的“粘包”问题有时候会让人火冒七丈.如果你不喜欢用Socket来传文件,不妨试试WCF,WCF的流模式传输还是相当强大和相当实用的. 因为开启流模式是基于绑定的,所以,它会影响到整个终结点的操作协定.如果你不记得或者说不喜欢背书,不想去记住哪些绑定支持流模式,可以通过以下方法: 因为开启流模式,主要是设置一个叫TransferMode的属性,所以,你看看哪些Binding的派生类有这个属性就可以了. TransferMode其…
原文  http://www.cnblogs.com/LipeiNet/p/4653830.html   前言:文件的输出我们并不陌生,但是今天我写的是用wcf模式进行文件传输,我觉得一大好处就是能进行服务器的监听.ok,现在来看看文件传输需要什么:第一需要传输的信息(文件名,流等)第二需要传输状态(是否传输成功,传输失败返回的信息)下面用图详细的表示下 第一步:先定义两个类 1 [MessageContract] 2 public class ResultMessage 3 { 4 [Mess…
WCF传输文件的时候可以设置每次文件的传输大小,如果是小文件的时候,可以很方便的将文件传递到服务端,但是如果文件比较大的话,就不可取了 遇到大文件的话可以采取分段传输的方式进行文件传输 思路: 1.客户端循环传递 2.将文件分割成指定大小的字节块 3.每次传输一小块后,客户端将当前文件的读取指针移动到指定位置 4.服务端每次依照传递过来的字节文件追加 问题:假设文件有好几个G大小,按照上述方式进行文件传输,当文件传递到99%的时候突然由于客观原因而造成文件传输失败,直接会造成服务器已经上传的文件…
问题:WCF如何传输大文件 方案:主要有几种绑定方式netTcpbinding,basicHttpBinding,wsHttpbinding,设置相关的传输max消息选项,服务端和客户端都要设置,transferMode可以buffer,stream. 实例:netTcpbinding 直接代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.S…
此篇文章主要是基于http协议应用于大文件传输中的应用,现在我们先解析下wcf中编码器的定义,编码器实现了类的编码,并负责将Message内存中消息转变为网络发送的字节流或者字节缓冲区(对于发送方而言).在接收方,编码会将一系列字节转变为内存中的消息 在wcf中有三个编码器 1.TextMessageEncodingBindingElement 文本消息编码器是所有的基于Http的绑定的默认编码器,并且是最关注互操作性的所有的自定义绑定的正确选择.即为请求/应答模式,此编码器读取和编码标准为SO…
首先声明,文章思路源于MSDN中徐长龙老师的课程整理,加上自己的一些心得体会,先总结如下: 在应对与大文件传输的情况下,因为wcf默认采用的是缓存加载对象,也就是说将文件包一次性接受至缓存中,然后生成对象,显然对于大文件的传输,这种方式是不可取的,一般我们采用流传输或者更优秀的本本编码方式,在文本编码这一块我们一般采用w3c提出的MTOM传输机制,MTOM(Message Transmission Optimization Mechanism),是W3C的MTOM的消息传输优化机制,有效地发送的…
前几天分享了分享了WCF聊天程序--WCFChat , 本文和大家一起分享利用WCF实现文件的传输.程序运行效果:接收文件端:发送文件端:连接WCF服务,选择要传输的文件文件传输成功:我们会在保存文件的默认路径:C:\Documents and Settings\Administrator\桌面,下看到传输的文件: 代码分析:这里就不一一的阐述每一句代码的作用了,感兴趣的朋友可以下载,文后会有下载链接.说下值得注意的地方:前两天有人在百度知道中问能不能把WCF中的契约单独封装到一个类库中,当时感…
http://www.cnblogs.com/happygx/archive/2013/10/29/3393973.html WCF大文件传输 WCF传输文件的时候可以设置每次文件的传输大小,如果是小文件的时候,可以很方便的将文件传递到服务端,但是如果文件比较大的话,就不可取了 遇到大文件的话可以采取分段传输的方式进行文件传输 思路: 1.客户端循环传递 2.将文件分割成指定大小的字节块 3.每次传输一小块后,客户端将当前文件的读取指针移动到指定位置 4.服务端每次依照传递过来的字节文件追加 问…
由于项目需要,自己写一个基于WCF的大文件传输服务雏形.觉得有一定的参考价值,因此放在网上分享. 目前版本为v1.1特点如下: 1.文件传输端口为18650 2.上传和下载文件 3.支持获取文件传输状态(未开始.传输中.传输完成.出现错误) 4.支持获取文件传输进度(范围0~1) 5.支持获取文件传输速度速度(按文件传输速度大小 自动切换 KB/s 和 MB/s显示) 项目解决方案如下: 服务断包括WCF寄宿的控制台服务和Windows 服务以及文件传输服务核心 公共包括一些帮助类(文件HASH…