- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
当有大量的数据要传输时,WCF的流模式是比较好的选择,因为流模式不是全部加载到内存后传输而是一边读取一边传输消息,所以流模式改善了系统的吞吐量和响应效率。 需要注意的是当启用了流模式,以下WCF功能无法使用: (1) 无法执行消息正文的数字签名; (2) 不支持Session; (3) 不支持可靠会话。WCF中定义的Binding中支持流模式的只有: BasicHttpBinding, NetTcpBinding, NetNamingPipeBinding, WebHttpBinding。流和会话?在流与基于会话的绑定一起调用时可能会产生意外行为。可通过单一通道(数据报通道)执行所有流调用,该通道不支持会话,即使将正在使用的绑定配置为使用会话也是如此。如果多个客户端通过基于会话的绑定对同一服务对象进行流调用,并且 ConcurrencyMode = Single,同时 InstanceContextMode = PerSession,则所用调用都必须经过数据报通道,因此一次只处理一个调用。一个或多个客户端因此可能会超时。通过将该服务对象的 InstanceContextMode 设置为 PerCall 或将 ConcurrencyMode 设置为 Multiple 可以解决。?流模式契约示例?启用流模式时,要求操作契约只能以单个的Stream对象为输入输出参数,你可以按照以下示例定义契约:? [c-sharp]? \o view plain view plain? \o copy copy [OperationContract]??? Stream?GetStream(string?data);??? [OperationContract]??? bool?UploadStream(Stream?stream);??? [OperationContract]??? Stream?EchoStream(Stream?stream);??? 注意:上面的UploadStream, EchoStream中添加第二个参数会导致流模式无效,因此如果想使用流传送更多信息,可以通过消息头携带信息,而消息正文是流内容。? [c-sharp]? \o view plain view plain? \o copy copy [MessageContract]?? public?class?FileUploadData??? {?? ????[MessageHeader]?? ????public?string?FileName?{?get;?set;?}?? ????[MessageHeader]?? ????public?int?FileSize?{?get;?set;?}?? ????[MessageHeader]?? ????public?string?FileUniqueID?{?get;?set;?}?? ????[MessageBodyMember]?? ????public?Stream?FileData?{?get;?set;?}?? }?? 流模式实现文件上传大数据传输的过程是比较耗时的,所以应该考虑异步调用,提高系统的响应。这里可以通过客户端生成代理时,指定生成异步操作。???流模式最常用的场景就是文件的上传和下载了,一般上传下载的过程比较长,比较好的客户体验是实时的把进度告诉客户端。我一开始考虑用Duplex在写流的过程中,即时通知客户端。而上面的Binding方式中只有NetTcpBinding支持Duplex,但实验后发现一旦使用Duplex,流模式就失效了。所以后来只好采用客户端轮询的方式来获取当前的进度,如下图:???服务契约(IUpLoadService.cs) [c-sharp]? \o view plain view plain? \o copy copy using?System;?? using?System.Collections.Generic;?? using?System.Linq;?? using?System.Runtime.Serialization;?? using?System.ServiceModel;?? using?System.Text;?? using?System.IO;?? namespace?WcfUploadServiceLib?? {?? ????[ServiceContract]?? ????public?interface?IUpLoadService?? ????{??? ????????[OperationContract(IsOneWay?=?true)]?? ????????void?UploadFile(FileU
您可能关注的文档
最近下载
- IFC050-Modbus通讯说明文件.docx VIP
- 《金川雪梨膏》标准文本.pdf VIP
- 2025年中国冷藏汽车行业市场深度评估及投资策略咨询报告.docx
- 市政管网工程项目施工方案施工组织设计.doc VIP
- 认证质量管理(ISO9001)手册(质量管理体系).pdf VIP
- 中国神经外科重症患者感染诊治专家共识CB.ppt VIP
- GB50366-2005 地源热泵系统工程技术规范.docx VIP
- SOLAS公约2016年中文综合文本(船海人版)- 第III章 救生设备和装置.pdf VIP
- 2024年南京市浦口区中医院招聘考试真题.docx VIP
- 中国谷物播种机市场供需现状及投资战略研究报告.docx
有哪些信誉好的足球投注网站
文档评论(0)