WebHttpBinding的流传输模式让我头大了
2012-03-22 14:01
183 查看
webHttpBinding支持流传输和缓存模式2种,如果要提供文件下载,肯定是要选择流传输模式的,不然文件要全部加载到内存后才会发送出去,不但占内存开销大,还影响了发送响应的速度。问题是流传输下面,自动使用了Transfer-Encoding:chunked的方式,这种方式将不告知客户端文件长度,即使我服务器设置消息头也没用,客户端就是得不到长度,导致了客户端以为我服务端不支持断点续传,甚至多线程下载都不能使用,除非自己开发一个下载软件,反正传统的下载软件都不支持,唯独NetTransport还能尝试在不知道是否能续传的情况下,发送续传指令,算是最人性化的软件了。想来想去,只有一个方法可以考虑了,就是改造 webHttpBinding 的缓存模式,缓存模式是传统的http响应,各种http头都可以设置,自然断点续传,多线程传输都可以使用,所需解决的问题是消息的写入,不能写缓存,而是实时从流中获取(如果返回的是流对象)。
研究方向确定,接下来看能否成功自定义一个 webHttpBinding 类似的绑定类出来了。待续……
研究方向确定,接下来看能否成功自定义一个 webHttpBinding 类似的绑定类出来了。待续……
相关文章推荐
- WCF分布式安全开发实践(5):传输安全模式之Certificate身份验证:Transport_Certificate_WSHttpBinding
- WCF分布式安全开发实践(6):传输安全模式之自定义X509Certificate证书验证:Transport_X509Certificate_WSHttpBinding
- WCF分布式安全开发实践(2):传输安全模式之基本身份验证(Windows账户密码):Transport_Basic_WSHttpBinding
- WCF分布式安全开发实践(5):传输安全模式之Certificate身份验证:Transport_Certificate_WSHttpBinding
- WCF分布式安全开发实践(1):传输安全模式之匿名客户端:Transport_None_WSHttpBinding
- WCF分布式安全开发实践(2):传输安全模式之基本身份验证(Windows账户密码):Transport_Basic_WSHttpBinding
- WCF分布式安全开发实践(1):传输安全模式之匿名客户端:Transport_None_WSHttpBinding
- WCF分布式安全开发实践(3):传输安全模式之自定义用户名密码身份验证:Transport_UserNamePassword_WSHttpBinding
- jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding
- WCF分布式安全开发实践(8):消息安全模式之用户名身份验证:Message_UserName_WSHttpBinding
- use webHttpBinding to implement WCF Rest Service
- IHttpHandler、WebClient、HttpWebRequest的异步模式
- wcf webHttpBinding Post 大数据量提交 ios c#客户端
- HttpWebResponse 传输IDictionary<string, string>[] parameter数组
- C# httpwebrequest post 传输百分号‘%’
- (转载)利用HttpWebRequest通过POST Json数据在.net后台实现不同平台间的数据传输
- 利用HttpWebRequest以POST方式提交Json数据-后台实现不同平台间的数据传输
- WCF分布式安全开发实践(4):传输安全模式之Windows身份验证:Transport_Windows_NetTcpBinding
- AJAX 异步传输的WEB模式
- WCF分布式安全开发实践(8):消息安全模式之用户名身份验证:Message_UserName_WSHttpBinding