使用WSE 3.0 MTOM的技术,让Web Service也可以传文件,而且传输更有效率,这篇将带到Client端的部分说明.
上一篇写了MTOM Server端的部分,这次要写的就是Client端的程序要怎么跟Server交互,也就是最后一篇,废话不多说,马上进入正题,Client端的程序跟Server端一样,要用WSE的Configuration Tool来设定,而Web Service是存在Web.Config,那Client端的WinForm就是存在app.config
?xml version="1.0" encoding="utf-8"?>
??
????
??????
????
?????? ????
???? ??
??
????
??????
????????http://localhost:2448/MTOMWebService/ServiceMTOM.asmx
??????
????
??
??
????
??????
????????c:temp
??????
????
??
??
????
??????
????????
??????
????
????
??????
????????
??????
????
??
??
????
??????
????
??
因为有Tool可以帮忙,里面的设定就不用一个一个打上去了.
开始步骤跟Web Service的做法一样,开启app.config,并做以下的设定.
做完上述设定,app.config就大致上完成了,接着下来就要要将Web Service加入参考,原本这是个很平常的动作,但有一点地方要注意一下,加入后的Web Service,要看一下它的Reference.cs.
反蓝的那一段必需为Microsoft.Web.Services3.WebServicesClientProtocol
系统默认会是System.Web.Services.Protocols.SoapHttpClientProtocol
这点要注意到,它会导致错误.
这样就完成大部分的设定工作,接下来就是Coding部分,在我们new Web Service时,有个属性要记得设,RequireMtom = true;
接下来就是调用Web Service的Method来进行上/下载,其实设定到这里,已经完成了大半,而调用Web Service的动作就像我们在调用一般的function一样,没有什么特别的动作,比如说下载.
如此就可以从Web Service取得到文件的buffer,再将buffer用FileStream写到文件即可,上传也是一样,用FileStream读取本端的档档到buffer,再调用Web Service把这Buffer给上传过去即可.
在使用WSE这段时间以来,发现它还不错用,在用SSL时有遇到一点小问题,但后来也是解决了,但WSE 3.0后就没有再出下一版了,因为它整合到WCF内,未来有机会再来看看WCF版的传档.
这次程序的介绍部分不多,因为有点小长,主要是因为用backgroundworker,及浮动式依传输速率去调整Buffer的长度,如果走固定又不用backgroundworker,程序就简单许多,所以这次放上整个Source Code,给有兴趣的朋友参考,这个就包含Web Service及Client端的程序.
源代码下载 :
MTOM.rar
原文:大专栏 MTOM文件的续传功能(三) Client 端程序介绍
原文地址:https://www.cnblogs.com/chinatrump/p/11490976.html