设置WCF实现传输大数据

WCF可以帮助我们用来传输数据。但是有没有人遇到过需要大容量数据传输的需求呢?只要进行正确的设置就可以实现WCF传输大数据。
在从客户端向WCF服务端传送较大数据(>65535B)的时候,发现程序直接从Reference的BeginInvoke跳到EndInvoke,没有进入服务端的Service实际逻辑中,怀疑是由于数据过大超出限定导致的。
问题是我实际发送的数据是刚刚从WCF服务端接收过来的,一来一去,数据量差别并不大。
然后发现,在客户端和服务端实际使用的是不同的配置,对于客户端,在添加ServiceReference时自动生成的ServiceReferences.ClientConfig文件中system.serviceModel节下有这样的设置实现WCF传输大数据:
< bindings>
< basicHttpBinding>
< binding name="BasicHttpBinding_WcfService"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
< security mode="None" />
< /binding>
< /basicHttpBinding>
< /bindings>然后在Client节里应用Binding
Configuration:
< client>
< endpoint address="http://
localhost:22000/Service/WcfService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_WcfService"
contract="WcfServiceReference.WcfService"
name="BasicHttpBinding_WcfService" />< /client>
在Binding里指定了最大缓存字节数和最大接受字节数,相当于2G的大小!除非传一整套连续剧,一般是够用了。
而在服务端,Web.config文件里,Bindings节是空的,而Service也没有指定bindingConfiguration属性,那么它们采用的就是默认的65535的大小。
问题找到,解决WCF传输大数据就比较容易了:
在Bindings节添加新的Binding设置,指定最大接受数据:
< bindings>
< basicHttpBinding>
< binding name="LargeDataTransferServicesBinding"
maxReceivedMessageSize="2147483647"
messageEncoding="Text" transferMode="Streamed"
sendTimeout="00:10:00" />
< /basicHttpBinding>
< /bindings>之后给相应的Service
指定bindingConfiguration属性:
< service behaviorConfiguration=
"Server.Service.WcfServiceBehavior"
name="Server.Service.WcfService">
< endpoint address="" binding=
"basicHttpBinding" bindingConfiguration=
"LargeDataTransferServicesBinding"
contract="Server.Service.WcfService" />
< endpoint address="mex" binding=
"mexHttpBinding" contract="IMetadataExchange" />
< /service>
这样就可以从客户端发送足够大的数据了。

P.S.:
.net默认只能传4M的文件,所以尽管设定了Wcf两端的配置,还是超不出.net的限定,所以如果要传输大文件,还需要在System.Web节下加上
< httpRuntimemaxRequestLength="102400" />
这里的单位是KB,这样就可以传100M的文件了,充分解决了WCF传输大数据的问题。当然,这么大的文件,最好还是分段传输比较好。
.net默认只能传4M的文件,所以尽管设定了Wcf两端的配置,还是超不出.net的限定,所以如果要传输大文件,还需要在System.Web节下加上
< httpRuntimemaxRequestLength="102400" />
这里的单位是KB,这样就可以传100M的文件了,充分解决了WCF传输大数据的问题。当然,这么大的文件,最好还是分段传输比较好。
建议不要传输过大的数据,因为可能造成你的网络堵塞。

时间: 2024-11-02 01:51:54

设置WCF实现传输大数据的相关文章

mina用外网传输大数据问题

问题描述 最近在用mina做文件上传功能,出现下面问题:用内网,无论传输多大数据没问题,用外网,传输小数据没问题,传输大数据(100M)时报WriteToClosedSessionException求各路大神指点.. 解决方案 解决方案二:服务器长时间长时间没有响应,连接被关闭了.

大数据量传输时配置WCF的注意事项

原文:大数据量传输时配置WCF的注意事项 WCF传输数据量的能力受到许多因素的制约,如果程序中出现因需要传输的数据量较大而导致调用WCF服务失败的问题,应注意以下配置: 1.MaxReceivedMessageSize:获取或设置配置了此绑定的通道上可以接收的消息的最大大小. basicHttpBinding等预定义的绑定一般具有MaxReceivedMessageSize属性,CustomBinding则需要在Transport中定义. 示例代码: <bindings> <custom

云风速——极速传输,大数据新兴业态之星

日前,以"共享共融.数创未来"为主题的"2015中关村大数据日"活动在北京圆满落幕.此次活动除了设在中关村的主会场,在全国还有三大分会场.主会场主要包括两大板块:"'共享共融.数创未来'主题峰会"和"中关村国际大数据创新展".   大数据虽然是新兴事物,但是由于用途广泛,涉及产业环节众多,大数据早已形成了众多的业态,不但分布于众多的行业中,而且大数据自身也形成了产业链.这个从峰会发布的大数据图谱就可见一斑.   峰会共发布了三

CIO指南:如何使用SAP HANA平台处理大数据

CIO指南:如何使用SAP HANA平台处理大数据   http://mp.weixin.qq.com/s?__biz=MjM5OTI2MjgyMA==&mid=2651785957&idx=1&sn=a2d234e1decabb69c44be11749328804&chksm=bcc585ee8bb20cf80051f5ac8aca7abd601afecd933f4ac2c0c6c3c3993a0b58113f348ad99c&mpshare=1&scen

【物流大数据实践】基于阿里云Maxcompute实现物流跟踪

免费开通大数据服务:https://www.aliyun.com/product/odps 摘要: 目前我国物流业保持较快增长,但还是存在一些问题:物流成本高.效率低,条块分割严重(自营物流.规模小.技术落后.标准不统一).基础设施相对滞后(物流基础设施之间不衔接.不配套),对订单创建到用户签收整套完整流程缺乏完善的监控和预警手段. 基于建设统一物流平台的基本要求,用户希望打通各大系统,能够跟踪所有订单在物流系统中的流转过程.处理状态等信息,具体如下需求: 1:订单分为5个阶段,订单处理.发运处

大数据为智慧城市构筑“核心大脑”

雪后的赤峰寒意阵阵,而红山区智慧城市项目建设正如火如荼.专用光纤网工程正在把政府部门.乡镇街道.学校.社区以及分布在全区的视频摄像头联在一起,汇聚到蒙东云计算中心的机房.智慧城市是赤峰蒙东云计算和大数据园区实施的一个重点项目,今年园区加大招商引资力度,入驻企业已累计达到85家,年底可实现交易额16亿元,吸纳1500人就业. 按照"孵化器.孵化园.产业园"三步走战略,赤峰蒙东云计算和大数据园区累计完成投资16亿元,建成了孵化器.孵化园等各类基础设施15万平方米.引进华为.中兴.北京恩源.

共话大数据 2013大数据全球技术峰会召开

2013年4月26日,由51CTO传媒旗下WOT(World of Tech)品牌主办的"2013大数据全球技术峰会"在北京富力万丽酒店正式举办.本次峰会聚焦大数据技术,围绕大数据基础架构与上层应用的生态系统,探索大数据基础的解决方案,全面剖析了数据从产生到挖掘到最后被消费的整个过程. 本届峰会为期2天,吸引了全球1000多位大数据领域的专业人士.企业及政府用户.技术专家.行业分析师和媒体共聚一堂,共同交流大数据时代的机遇和挑战,探讨在传统企业应用.新兴行业拓展的创新. 工信部软件与服

大数据与Microsoft Access共同应用的机会

如今,大数据可能会以一些有趣的方式改变一些旧工具.Microsoft Office Access就是一个很好的例子.Microsoft Office Access是由微软发布的关系数据库管理系统.它结合了Microsoft Jet Database Engine和图形用户界面两项特点.Microsoft Office Access不再是简单的创建桌面数据库软件,它是一款能够帮助用户针对数据快速构建定制应用的工具,使其更轻松地对数据进行跟踪.报告以及与他人共享. 微软公司在25年前首次发布了这个应

大数据量下的SQL Server数据库自身优化

1.1:增加次数据文件 从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高查询速度,可以把一些表或者一些表中的部分记录分开存储在不同的数据文件里 由于CPU和内存的速度远大于硬盘的读写速度,所以可以把不同的数据文件放在不同的物理硬盘里,这样执行查询的时候,就可以让多个硬盘同时进行 查询,以充分利用CPU和内存的性能,提高查询速度. 在这里详细介绍一下其写入的原理,数据文件