大连网站建设功能,dede查看网站源码,网站推广方案200字,什么是sem营销jillzhang jillzhang126.com 这几天#xff0c;光忙着写程序员职场了#xff0c;对wse的翻译和学习没有太大的进展#xff0c;这可不太好#xff0c;毕竟咱还是靠技术混饭吃的#xff0c;荒废了技术怎么行#xff01;今天再上一盘有关wse的小菜#xff0c;目的是想用ws…jillzhang jillzhang126.com 这几天光忙着写程序员职场了对wse的翻译和学习没有太大的进展这可不太好毕竟咱还是靠技术混饭吃的荒废了技术怎么行今天再上一盘有关wse的小菜目的是想用wse实现大数据的传输。 在wse框架结构中能够使用Message Transmission Optimization Mechanism (MTOM) 协议来传输大数据这在前文的翻译中也有提到详细内容可以参见WSE 3.0 文档翻译:WSE的新功能 中的介绍。本文就是对用MTOM传输大数据做一个项目示例主要解决用web service上传下载文件的问题。 实现本示例需要三步 1 创建asp.net xml web服务项目并对其进行配置编码 2 创建一个web服务的客户端应用程序对其进行配置编码 3 准备好测试文件运行客户端程序查看运行结果 创建asp.net xml web服务项目并对其进行配置编码 通过项目模板创建一个传统的asp.net xml web service网站工程在解决方案资源管理中右键点击该工程选择wse 3.0 settting进行如下图所示的操作 此操作可以为项目添加对Microsoft.Web.Services3的引用为项目能使用wse 3.0框架做出第一步设置 添加引用之后我们需要设置网络服务能够使用MTOM协议来进行消息传输方法如下图所示仍通过点击wse 3.0 settting然后进行如下的配置 这里我们可以将Server Mode设置为always或者optional二者的区别如下 Optional可选的 不管经Wse处理的请求消息是否经过MTOM编码Soap响应或者Soap错误都是经过MTOM编码的 Always总是经wse处理的请求和响应一定要是MTOM编码的 经过这个操作会在web.config中增加如下的配置信息 在Service.asmx中添加代码 Service端using System;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;using System.IO;[WebService(Namespace http://tempuri.org/)][WebServiceBinding(ConformsTo WsiProfiles.BasicProfile1_1)]public class Service : System.Web.Services.WebService{ public Service () { } [WebMethod] public byte[] Send(string fileName) { string filePath Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName); if (!File.Exists(filePath)) { throw new Exception(string.Format(文件:{0}不存在,filePath)); } byte[] buffer File.ReadAllBytes(filePath); return buffer; } [WebMethod] public bool Receive(byte[] buffer,string fileName) { string filePath Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName); File.WriteAllBytes(filePath, buffer); return false; }} 创建一个web服务的客户端应用程序对其进行配置编码 创建一个console程序名为BinaryMTOMClient也按1中所示添加Microsoft.Web.Services3的引用然后设置MTOM选项如下图所示 将Client Mode设置为On表示客户端允许将Soap消息进行MTOM编码。此操作会在app.config中增加如下配置信息: 添加对上面1中创建的网络服务的web引用然后将Programe代码更改如下 Client端using System;using System.Collections.Generic;using System.Text;using System.IO;namespace BinaryMTOMClient{ public class Program:WseBase.AppBase { localhost.ServiceWse serviceProxy; public Program() { serviceProxy new BinaryMTOMClient.localhost.ServiceWse(); ConfigureProxy(serviceProxy); } static void Main(string[] args) { Program p new Program(); string fileName 1.txt; p.Download(fileName); fileName 2.txt; p.Upload(fileName); Console.Read(); } public void Download(string fileName) { try { Console.WriteLine(开始调用网络服务:serviceProxy.Url); byte[] buffer serviceProxy.Send(fileName); Console.WriteLine(接收到未加密的数据); Console.WriteLine(数据长度为:buffer.Length.ToString()); File.WriteAllBytes(fileName, buffer); } catch (Exception ex) { Console.WriteLine(ex.Message); } } public void Upload(string fileName) { try { string filePath Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName); if (!File.Exists(filePath)) { Console.WriteLine(string.Format(文件:{0}不存在, filePath)); return; } Console.WriteLine(开始调用网络服务: serviceProxy.Url); byte[] buffer File.ReadAllBytes(filePath); serviceProxy.Receive(buffer, fileName); Console.WriteLine(发送未加密的数据); Console.WriteLine(数据长度为: buffer.Length.ToString()); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }} 准备好测试文件运行客户端程序查看运行结果 在网络服务的根目录中添加1.txt作为客户端要下载的文件资源在客户端运行目录中添加2.txt作为客户端要上传的文件资源按下图所示运行客户端 浏览网络服务根目录新增了文件2.txt,而客户端运行目录,新增了文件1.txt表示示例成功 示例项目示例文件 转载于:https://www.cnblogs.com/jillzhang/archive/2008/01/14/1038223.html