Web服务和WCF服务.ppt

上传人:豆**** 文档编号:34133437 上传时间:2022-08-14 格式:PPT 页数:52 大小:409KB
返回 下载 相关 举报
Web服务和WCF服务.ppt_第1页
第1页 / 共52页
Web服务和WCF服务.ppt_第2页
第2页 / 共52页
点击查看更多>>
资源描述

《Web服务和WCF服务.ppt》由会员分享,可在线阅读,更多相关《Web服务和WCF服务.ppt(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Web开发技术2 13.1 Web服务服务技术技术 13.2 建立建立ASP.NET Web服务服务 13.3 调用调用ASP.NET Web服务服务 13.3.1 调用简单的调用简单的ASP.NET Web服务服务 13.3.2 Web服务方法重载服务方法重载 13.3.3 Web服务的传输协议服务的传输协议 13.4 WCF服务服务(*) 13.4.1 建立建立WCF服务服务 13.4.2 使用使用WCF服务服务 13.5 小结小结目目录录Web开发技术313.1 Web开发技术4Web开发技术5Web开发技术6Web开发技术7Web开发技术8Web开发技术9 内容 名称 ? ?Routi

2、ng, Reliability and Transaction ? Workflow WSFL Service Discovery, Integration UDDI Service Description WSDL Messaging SOAP Transport HTTP, FTP, SMTP Internet Ipv5., Ipv7.图:Web Service “stack”Web开发技术10Google EarthGoogle EarthWeb开发技术11Web开发技术12 在实际应用中,特别是大型企业,数据常来源于不在实际应用中,特别是大型企业,数据常来源于不同的平台和系统。同的平台

3、和系统。Web服务为这种情况下数据集成服务为这种情况下数据集成提供了一种便捷的方式。通过访问和使用远程提供了一种便捷的方式。通过访问和使用远程Web服务可以访问不同系统中的数据。在使用时,通过服务可以访问不同系统中的数据。在使用时,通过Web服务,服务,Web应用程序不仅可以共享数据,还可应用程序不仅可以共享数据,还可以调用其他应用程序生成的数据,而不用考虑其他以调用其他应用程序生成的数据,而不用考虑其他应用程序是如何生成这些数据的。应用程序是如何生成这些数据的。 注意:返回数据而不是返回页面是注意:返回数据而不是返回页面是Web服务的重要服务的重要特点。特点。Web开发技术13 除数据重用外

4、,使用除数据重用外,使用Web服务还能实现软件重服务还能实现软件重用。用。 Web服务常用协议。服务常用协议。 HTTP协议协议 简单对象访问协议简单对象访问协议SOAP Web服务描述语言服务描述语言WSDL和统一描述发现集成和统一描述发现集成协议协议UDDI的支持。的支持。 Web开发技术141、 .NET开发开发Web 服务介绍服务介绍开发基于开发基于Web 服务的应用实际上包括了开发服务器端和服务的应用实际上包括了开发服务器端和客户端两大功能模块客户端两大功能模块(实现简单的实现简单的Web 服务并不需要对服务并不需要对UDDI 进行编程进行编程) 。. NET 平台开发环境中建立平台

5、开发环境中建立Web 服务程序非常简单。服务程序非常简单。. NET 把把Web 服务封装成一个类来实现服务封装成一个类来实现,这个类从这个类从System. Web. Services.WebService 继承而来继承而来,该类支持该类支持SOAP通通信。信。13.2 建立建立ASP.NET Web服务服务Web开发技术15通过在这个类中加入公共的函数向外界提供通过在这个类中加入公共的函数向外界提供Web 服务。该类通常服务。该类通常可以包含一个或多个公有或私有函数。可以包含一个或多个公有或私有函数。属性属性WebMethod 被用于被用于描述公有函数描述公有函数,使得远程使得远程Web

6、客户能够访问以它描述的函数。私有客户能够访问以它描述的函数。私有函数可被类自身的其它函数调用。函数可被类自身的其它函数调用。.NET 自动根据自动根据WebMethod 属性中定义的信息生成用来描述属性中定义的信息生成用来描述Web 服务的服务的WSDL 文档并将它安装到指定的文档并将它安装到指定的Web 服务器当中。服务器当中。WSDL 文档是文档是Web 客户端访问服务器端的客户端访问服务器端的Web 服务标准接口。服务标准接口。Web开发技术16.NET 提供模板和向导可以为开发者自动生成提供模板和向导可以为开发者自动生成Web 客户端程序连客户端程序连接接服务器的代码服务器的代码,且自

7、动绑定且自动绑定Web服务。它通过服务。它通过HTTP 协议向远程的协议向远程的提供提供Web 服务的服务器发送请求服务的服务器发送请求,服务器和客户端的服务器和客户端的SOAP/ XML 编码、解码由系统自动处理。编码、解码由系统自动处理。. NET 隐藏了隐藏了SOAP 和和XML协议的协议的底层内容底层内容,从而大大减轻了开发人员的工作量。从而大大减轻了开发人员的工作量。Web开发技术172、.NET开发开发Web 服务歩骤服务歩骤两种模板两种模板 ASP.NET Web服务网站模板:(文件服务网站模板:(文件=新建新建=网站网站=选选“ASP.NET Web服务服务”模板)模板) 用于

8、创建独立的网站,在创建时会自动在网站根文件夹用于创建独立的网站,在创建时会自动在网站根文件夹下建立一个下建立一个Web服务文件服务文件Service.asmx,同时在,同时在App_Code文件夹下建立相应的类文件文件夹下建立相应的类文件Service.cs。 Web服务模板:(右击网站文件夹,拉出菜单服务模板:(右击网站文件夹,拉出菜单=“添加新添加新项项”=“Web服务服务”模板)模板) 要建立要建立Web服务文件,可不必专门创建一个网站,利用服务文件,可不必专门创建一个网站,利用Web服务模板在已有的服务模板在已有的ASP.NET网站中添加网站中添加Web服务文服务文件。件。 注意:注意

9、:ASP.NET Web服务文件的扩展名为服务文件的扩展名为.asmx。Web开发技术18实例实例13-1 建立建立ASP.NET Web服务服务本实例将建立一个本实例将建立一个ASP.NET Web服务网站,服务网站,在建网站时在建网站时Visual Studio 2008自动建立了自动建立了Service.asmx和和Service.cs。源程序:自动建立的源程序:自动建立的Service.asmxWeb开发技术19using System;using System.Linq;using System.Web;using System.Web.Services;using System.W

10、eb.Services.Protocols;using System.Xml.Linq;WebService(Namespace = http:/tempuri.org/)WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)System.Web.Script.Services.ScriptService / 允许使用允许使用 ASP.NET AJAX 从脚本中调用此从脚本中调用此 Web 服务服务 public class Service : System.Web.Services.WebService public Servi

11、ce() WebMethod public string HelloWorld() return Hello World; Web开发技术20程序说明 与与.aspx文件相比,文件相比,Service.asmx文件中使用文件中使用WebService指令代替了指令代替了Page指令。指令。 在在Service.cs中,中,WebService(Namespace = http:/tempuri.org/)表示本服务的命名空间。表示本服务的命名空间。W3C规定每一个规定每一个Web服务都需要一个自己的命服务都需要一个自己的命名空间来区别其他的名空间来区别其他的Web服务,因此当正式发服务,因此当

12、正式发布布Web服务时,需要将它改为开发者自己的命服务时,需要将它改为开发者自己的命名空间,如公司网站的域名。名空间,如公司网站的域名。 Web开发技术21程序说明(续)程序说明(续) WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)表示本表示本Web服务的规范服务的规范为为“WS-I基本规范基本规范1.1版版”。这种规范用于实现跨平。这种规范用于实现跨平台台Web服务的互操作性。服务的互操作性。 创建创建Web服务实质就是创建服务实质就是创建System.Web.Services.WebService的一个子类,在创的一个

13、子类,在创建类方法前必须加入建类方法前必须加入WebMethod。如果不用。如果不用WebMethod进行声明,则定义的方法只能在本服务进行声明,则定义的方法只能在本服务内部调用。内部调用。Web开发技术2213.3 调用调用ASP.NET Web服务服务 应用范围应用范围: Web服务可以在服务可以在Web应用程序中使用。应用程序中使用。 可以在可以在Windows窗体中使用。窗体中使用。 可以在移动应用程序中使用。可以在移动应用程序中使用。 注意:若要允许使用注意:若要允许使用ASP.NET AJAX从脚本从脚本库中调用库中调用Web服务,则需要导入命名空间服务,则需要导入命名空间Syst

14、em.Web.Script.Services.ScriptService。 Web开发技术2313.3.1 调用简单的调用简单的ASP.NET Web服务服务 要使用要使用ASP.NET Web服务只需将服务以服务只需将服务以Web引用的方式添加到项目中,然后通引用的方式添加到项目中,然后通过创建过创建Web服务的实例来使用服务。服务的实例来使用服务。 Web开发技术24实例实例13-2 调用调用ASP.NET Web服务服务(1)添加)添加Web引用。引用。右击右击Web服务的项目名,在快捷菜单中选择服务的项目名,在快捷菜单中选择“添加添加Web引用引用”命令,弹出对话框,填入:命令,弹出对

15、话框,填入:URL:http:/localhost:4917/AspService/Service.asmx点击点击“前往前往”按钮按钮Web引用名:引用名:AspServer(2)建立)建立Web窗体文件并窗体文件并调用调用Service。 源程序:源程序:AspConsumer.aspx 程序说明:当单击程序说明:当单击“测试测试HelloWorld”按钮时,首先按钮时,首先建立建立Service的实例的实例serTest,再调用,再调用HelloWorld()方法方法返回结果并显示在返回结果并显示在lblShow上。上。Web开发技术25 web服务测试页服务测试页 Web开发技术26u

16、sing System;public partial class chap13_AspConsumer : System.Web.UI.Page protected void btnTestServer_Click(object sender, EventArgs e) AspServer.Service serTest = new AspServer.Service(); lblShow.Text = serTest.HelloWorld(); Web开发技术2713.3.2 Web服务方法重载服务方法重载 通过方法的签名来实现方法的重载。通过方法的签名来实现方法的重载。 对对WebMeth

17、od使用属性使用属性MessageName来设来设置方法的签名。置方法的签名。WebMethod(MessageName = HelloWorld)WebMethod(MessageName = HelloWorldbyName) 禁止禁止Web服务遵循服务遵循WS-I基本规范基本规范1.1版。版。WebServiceBinding(ConformsTo = WsiProfiles.None) Web开发技术28也可以通过修改也可以通过修改web.config文件文件 Web开发技术29实例实例13-3 Web服务方法重载服务方法重载 本实例将建立一个实现本实例将建立一个实现HelloWorl

18、d()方法方法重载的重载的ASP.NET Web服务。服务。 源程序:源程序:OverloadService.asmx Web开发技术30using System.Web.Services;/ / OverloadService 的摘要说明的摘要说明/ WebService(Namespace = http:/tempuri.org/)/WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)WebServiceBinding(ConformsTo = WsiProfiles.None)System.Web.Script.Servi

19、ces.ScriptServicepublic class OverloadService : System.Web.Services.WebService WebMethod(MessageName = HelloWorld) public string HelloWorld() return Hello World; WebMethod(MessageName = HelloWorldbyName) public string HelloWorld(string userName) return Hello World! + userName; Web开发技术3113.3.3 Web服务的

20、传输协议服务的传输协议 Web服务数据传输的格式可以使用服务数据传输的格式可以使用HTTP-GET、HTTP-POST或或SOAP。当使用不同的。当使用不同的传输协议时,调用传输协议时,调用Web服务的格式不同。服务的格式不同。 HTTP-GET允许发送请求和参数。允许发送请求和参数。ASP.NET 1.0默认允许使用默认允许使用HTTP-GET,而,而ASP.NET 1.1以后的版本以后的版本HTTP-GET请求在默认情况下请求在默认情况下是禁止的,可以通过修改是禁止的,可以通过修改web.config文件启用。文件启用。 Web开发技术3213.3.3 Web服务的传输协议(续)服务的传输

21、协议(续) Web开发技术3313.3.3 Web服务的传输协议(续)服务的传输协议(续) 测试Web服务http:/localhost:1035/AspService/OverloadService.asmx/HelloWorldbyName?userName=Mike Web开发技术3413.3.3 Web服务的传输协议(续)服务的传输协议(续) HTTP-POST协议的参数以表单形式提交。协议的参数以表单形式提交。 测试测试Web服务服务浏览浏览OverloadService.asmx,选择第二个,选择第二个HelloWorld,打开,打开HelloWorldbyName测试测试页。填入

22、值页。填入值“John”,单击,单击“调用调用”按钮。按钮。Web开发技术3513.4 WCF服务服务 WCF(Windows Communication Foundation)服务是面向服务()服务是面向服务(Service Oriented)的应用程序新框架。)的应用程序新框架。 提出提出WCF的目的是为分布式计算提供可的目的是为分布式计算提供可管理的方法,提供广泛的互操作性,并管理的方法,提供广泛的互操作性,并为服务定位提供直接的支持。为服务定位提供直接的支持。Web开发技术3613.4 WCF服务(续)服务(续) WCF包含一个包含一个POX(Plain Old XML)的通用对象模型

23、,以及可以利用多种协的通用对象模型,以及可以利用多种协议进行传输的议进行传输的SOAP消息。消息。 WCF也可以深入支持也可以深入支持WS-I定义的定义的Web服服务标准,因此它可以毫不费力地与其他务标准,因此它可以毫不费力地与其他Web服务平台进行互操作。服务平台进行互操作。 Web开发技术3713.4 WCF服务(续)服务(续) .NET Framework 3.5中的中的WCF构建于构建于.NET Framework 3.0的基础之上,将以的基础之上,将以Web为中心为中心的通信、的通信、SOAP和和WS-I标准组合到了一个服标准组合到了一个服务堆栈和对象模型中。务堆栈和对象模型中。 W

24、CF采用采用SOAP和和WS-I标准在企业内部或跨标准在企业内部或跨企业之间进行通信,同时还可以将同一服务企业之间进行通信,同时还可以将同一服务配置为使用配置为使用Web协议与外部通信。协议与外部通信。Web开发技术3813.4 WCF服务(续)服务(续) WCF处理了服务中的烦琐细节工作,开发人员可以更处理了服务中的烦琐细节工作,开发人员可以更加专注于服务所提供的功能。加专注于服务所提供的功能。 WCF应用程序运行环境:支持应用程序运行环境:支持WCF的消息队列的消息队列MSMQ功能的操作系统。包含:功能的操作系统。包含:Windows Vista、Windows Server 2003 R

25、2、Windows Server 2003 SP1和和Windows XP Professional。 WCF的大部分功能都包含在一个单独的程序集的大部分功能都包含在一个单独的程序集System.ServiceModel.dll中,命名空间为中,命名空间为System.ServiceModel。 Web开发技术3913.4.1 建立建立WCF服务服务 WCF服务要建立服务接口文件和服务逻辑处理文件。服务要建立服务接口文件和服务逻辑处理文件。 WCF服务网站模板:用于创建独立的网站,在创建服务网站模板:用于创建独立的网站,在创建时会自动在网站根文件夹下建立一个时会自动在网站根文件夹下建立一个WC

26、F服务文件服务文件Service.svc,同时在,同时在App_Code文件夹下建立相应的文件夹下建立相应的类文件类文件IService.cs和和Service.cs。其中。其中Service.svc用于用于定义定义WCF服务;服务;IService.cs用于接口的定义;用于接口的定义;Service.cs类实现服务逻辑处理。类实现服务逻辑处理。 Web开发技术4013.4.1 建立建立WCF服务(续)服务(续) WCF服务模板:在已有的服务模板:在已有的ASP.NET网站网站中添加中添加WCF服务文件。服务文件。 Web开发技术41实例实例13-4 建立建立WCF服务服务 本实例通过建立两个

27、整数加减运算的本实例通过建立两个整数加减运算的WCF服务。服务。 建立服务框架建立服务框架 源程序:源程序:Cal.svc 建立接口文件建立接口文件 源程序:源程序:ICal.cs 实现接口实现接口 源程序:源程序:Cal.cs Web开发技术42(1)服务框架源程序:)服务框架源程序:Cal.svc (2)接口文件)接口文件 源程序:源程序:ICal.csusing System.ServiceModel;/ 注意注意: 如果更改此处的接口名称如果更改此处的接口名称 ICal,/也必须更新也必须更新 Web.config 中对中对 ICal 的引用。的引用。ServiceContractpu

28、blic interface ICal OperationContract int Add(int a, int b); OperationContract int Subtract(int a, int b); Web开发技术43(3)实现接口)实现接口 源程序:源程序:Cal.cs / 注意注意: 如果更改此处的类名如果更改此处的类名 Cal,/也必须更新也必须更新 Web.config 中对中对 Cal 的引用。的引用。public class Cal : ICal public int Add(int a, int b) return (a + b); public int Subtr

29、act(int a, int b) return (a - b); Web开发技术4413.4.2 使用使用WCF服务服务 使用使用WCF服务需要向项目中添加服务引用,而不服务需要向项目中添加服务引用,而不是添加是添加Web引用。引用。右击右击WCF服务的项目名,在快捷菜单中选择服务的项目名,在快捷菜单中选择“添加添加服务引用服务引用”命令,弹出对话框,填入:命令,弹出对话框,填入:地址:地址:http:/localhost:1054/WCFService/Cal.svc点击点击“前往前往”按钮按钮命名空间:命名空间:WcfServer Web开发技术45 WCF服务测试页服务测试页-Cal

30、      Web开发技术46using System;public partial class chap13_WcfConsumerCal : System.Web.UI.Page protected void btnAdd_Click(object sender, EventArgs e) WcfServer.CalClient ws = new WcfServer.CalClient(); int a = int.Parse(txtA.Text); int b = int.Parse(txtB.Text); int result = ws.Add(a, b)

31、; lblResult.Text = a.ToString() + + + b.ToString() + = + result.ToString(); ws.Close(); protected void btnSubtract_Click(object sender, EventArgs e) WcfServer.CalClient ws = new WcfServer.CalClient(); int a = int.Parse(txtA.Text); int b = int.Parse(txtB.Text); int result = ws.Subtract(a, b); lblResu

32、lt.Text = a.ToString() + - + b.ToString() + = + result.ToString(); ws.Close(); Web开发技术47程序说明程序说明 要使用要使用WCF服务服务Cal,首先应建立一个,首先应建立一个CalClient类对象,然后就可以使用类对象,然后就可以使用WCF服务服务Cal中定义的方法。本例建立了中定义的方法。本例建立了CalClient类类对象的实例对象的实例ws。 当单击当单击“加加”按钮时,调用按钮时,调用ws的的Add()方法方法返回计算结果并在返回计算结果并在lblResult中显示加法运算中显示加法运算式,如图式,如

33、图13-20所示。所示。Web开发技术48程序说明(续)程序说明(续) 当单击当单击“减减”按钮时,则调用按钮时,则调用ws的的Subtract()方法返回计算结果并在方法返回计算结果并在lblResult中显示减法运算式。中显示减法运算式。 使用使用WCF服务后要调用服务后要调用Close()方法关闭,方法关闭,如果在关闭后要继续使用,可以调用如果在关闭后要继续使用,可以调用Open()方法打开。方法打开。Web开发技术4913.5 小结小结 使用使用Web服务能实现数据重用和软件重用,服务能实现数据重用和软件重用,这为建立松散耦合型的分布式系统提供了方这为建立松散耦合型的分布式系统提供了方

34、便。实现便。实现Web服务需要服务需要HTTP、SMTP、SOAP、WSDL和和UDDI等协议的支持。而等协议的支持。而SOAP、WSDL和和UDDI等协议都是基于等协议都是基于XML进行描述的。进行描述的。Web开发技术5013.5 小结(续)小结(续) 使用使用ASP.NET Web服务需要首先添加服务需要首先添加Web引引用,再应用到用,再应用到Web窗体中。在调用窗体中。在调用ASP.NET Web服务时可以使用服务时可以使用HTTP-GET、HTTP-POST和和SOAP等协议。等协议。 建立建立WCF服务需要建立服务定义文件、服务服务需要建立服务定义文件、服务接口文件和服务逻辑处理文件。在使用接口文件和服务逻辑处理文件。在使用WCF服务时,需要首先添加服务引用,再应用到服务时,需要首先添加服务引用,再应用到Web窗体中。窗体中。Web开发技术51思考题思考题1、一个网站如何调用另一个网站上的、一个网站如何调用另一个网站上的Web服务?服务?2、.NET的的Web服务是如何发布的?服务是如何发布的?3、其它应用程序怎样调用、其它应用程序怎样调用.NET的的Web服务?服务?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁