Web服务和WCF服务.ppt_第1页
Web服务和WCF服务.ppt_第2页
Web服务和WCF服务.ppt_第3页
Web服务和WCF服务.ppt_第4页
Web服务和WCF服务.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第13章 Web服务和WCF服务,2,本章要点:,了解Web服务 掌握建立ASP.NET Web服务和WCF服务的方法 掌握使用ASP.NET Web服务和WCF服务的方法,3,目录,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 小结,4,13.1 什么是Web服务,在实际应用中,特别是大型企业,数据常来源于不同的平台和系统。Web服务为这种情况下数据集成提供了一种便捷的方式。通过访问和使用远程Web服务可以访问不同系统中的数据。在使用时,通过Web服务Web应用程序不仅可以共享数据,还可以调用其他应用程序生成的数据,而不用考虑其他应用程序是如何生成这些数据的。 注意:返回数据而不是返回页面是Web服务的重要特点。,5,13.1 什么是Web服务(续),除数据重用外,使用Web服务还能实现软件重用。 Web服务需要一系列的协议来实现。 HTTP协议 SMTP、FTP 简单对象访问协议SOAP Web服务的运作还需要Web服务描述语言WSDL和统一描述发现集成协议UDDI的支持。,6,13.2 建立ASP.NET Web服务,建立Web服务实质就是在支持SOAP通信的类中建立一个或多个方法。 两种模板 ASP.NET Web服务网站模板: 用于创建独立的网站,在创建时会自动在网站根文件夹下建立一个Web服务文件Service.asmx,同时在App_Code文件夹下建立相应的类文件Service.cs。 Web服务模板: 要建立Web服务文件,也不必专门创建一个网站,可以利用Web服务模板在已有的ASP.NET网站中添加Web服务文件。 注意:ASP.NET Web服务文件的扩展名为.asmx。,7,实例13-1 建立ASP.NET Web服务,本实例将建立一个ASP.NET Web服务网站,在建网站时Visual Studio 2008自动建立了Service.asmx和Service.cs。 源程序:自动建立的Service.asmx,8,程序说明,与.aspx文件相比,Service.asmx文件中使用WebService指令代替了Page指令。 在Service.cs中,WebService(Namespace = “/“)表示本服务的命名空间。W3C规定每一个Web服务都需要一个自己的命名空间来区别其他的Web服务,因此当正式发布Web服务时,需要将它改为开发者自己的命名空间,如公司网站的域名。,9,程序说明(续),WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)表示本Web服务的规范为“WS-I基本规范1.1版”。这种规范用于实现跨平台Web服务的互操作性。 创建Web服务实质就是创建System.Web.Services.WebService的一个子类,在创建类方法前必须加入WebMethod。如果不用WebMethod进行声明,则定义的方法只能在本服务内部调用。,10,13.3 调用ASP.NET Web服务,应用范围: Web服务可以在Web应用程序中使用。 可以在Windows窗体中使用。 可以在移动应用程序中使用。 可以在数据库中使用。 注意:若要允许使用ASP.NET AJAX从脚本库中调用Web服务,则需要导入命名空间System.Web.Script.Services.ScriptService。,11,13.3.1 调用简单的ASP.NET Web服务,要使用ASP.NET Web服务只需将服务以Web引用的方式添加到项目中,然后通过创建Web服务的实例来使用服务。,12,实例13-2 调用ASP.NET Web服务,添加Web引用。 建立Web窗体文件并调用Service。 源程序:AspConsumer.aspx 程序说明:当单击“测试HelloWorld”按钮时,首先建立Service的实例serTest,再调用HelloWorld()方法返回结果并显示在lblShow上。,13,13.3.2 Web服务方法重载,通过方法的签名来实现方法的重载。 对WebMethod使用属性MessageName来设置方法的签名。 WebMethod(MessageName = “HelloWorld“) WebMethod(MessageName = “HelloWorldbyName“) 禁止Web服务遵循WS-I基本规范1.1版。 WebServiceBinding(ConformsTo = WsiProfiles.None),14,13.3.2 Web服务方法重载(续),15,实例13-3 Web服务方法重载,本实例将建立一个实现HelloWorld()方法重载的ASP.NET Web服务。 源程序:OverloadService.asmx,16,13.3.3 Web服务的传输协议,Web服务数据传输的格式可以使用HTTP-GET、HTTP-POST或SOAP。当使用不同的传输协议时,调用Web服务的格式不同。 HTTP-GET允许发送请求和参数。ASP.NET 1.0默认允许使用HTTP-GET,而ASP.NET 1.1以后的版本HTTP-GET请求在默认情况下是禁止的,可以通过修改web.config文件启用。,17,13.3.3 Web服务的传输协议(续),18,13.3.3 Web服务的传输协议(续),测试Web服务 http:/localhost:1035/AspService/OverloadService.asmx/HelloWorldbyName?userName=Mike,19,13.3.3 Web服务的传输协议(续),HTTP-POST协议的参数以表单形式提交。 测试Web服务 浏览OverloadService.asmx,选择第二个HelloWorld,打开HelloWorldbyName测试页。填入值“John”,单击“调用”按钮。,20,13.4 WCF服务,WCF(Windows Communication Foundation)服务是面向服务(Service Oriented)的应用程序新框架。 提出WCF的目的是为分布式计算提供可管理的方法,提供广泛的互操作性,并为服务定位提供直接的支持。,21,13.4 WCF服务(续),WCF包含一个POX(Plain Old XML)的通用对象模型,以及可以利用多种协议进行传输的SOAP消息。 WCF也可以深入支持WS-I定义的Web服务标准,因此它可以毫不费力地与其他Web服务平台进行互操作。,22,13.4 WCF服务(续),.NET Framework 3.5中的WCF构建于.NET Framework 3.0的基础之上,将以Web为中心的通信、SOAP和WS-I标准组合到了一个服务堆栈和对象模型中。 WCF采用SOAP和WS-I标准在企业内部或跨企业之间进行通信,同时还可以将同一服务配置为使用Web协议与外部通信。,23,13.4 WCF服务(续),WCF处理了服务中的烦琐细节工作,开发人员可以更加专注于服务所提供的功能。 WCF应用程序运行环境:支持WCF的消息队列MSMQ功能的操作系统。包含:Windows Vista、Windows Server 2003 R2、Windows Server 2003 SP1和Windows XP Professional。 WCF的大部分功能都包含在一个单独的程序集System.ServiceModel.dll中,命名空间为System.ServiceModel。,24,13.4.1 建立WCF服务,WCF服务要建立服务接口文件和服务逻辑处理文件。 WCF服务网站模板:用于创建独立的网站,在创建时会自动在网站根文件夹下建立一个WCF服务文件Service.svc,同时在App_Code文件夹下建立相应的类文件IService.cs和Service.cs。其中Service.svc用于定义WCF服务;IService.cs用于接口的定义;Service.cs类实现服务逻辑处理。,25,13.4.1 建立WCF服务(续),WCF服务模板:在已有的ASP.NET网站中添加WCF服务文件。,26,实例13-4 建立WCF服务,本实例通过建立两个整数加减运算的WCF服务。 建立服务框架 源程序:Cal.svc 建立接口文件 源程序:ICal.cs 实现接口 源程序:Cal.cs,27,13.4.2 使用WCF服务,使用WCF服务需要向项目中添加服务引用,而不是添加Web引用。,28,实例13-5 使用WCF服务,添加服务引用 将已添加到项目中的WCF服务应用到Web窗体页中 源程序:WcfConsumerCal.aspx,29,程序说明,要使用WCF服务Cal,首先应建立一个CalClient类对象,然后就可以使用WCF服务Cal中定义的方法。本例建立了CalClient类对象的实例ws。 当单击“加”按钮时,调用ws的Add()方法返回计算结果并在lblResult中显示加法运算式,如图13-20所示。,30,程序说明(续),当单击“减”按钮时,则调用ws的Subtract()方法返回计算结果并在lblResult中显示减法运算式。 使用WCF服务后要调用Close()方法关闭,如果在关闭后要继续使用,可以调用Open()方法打开。,31,13.5 小结,使用Web服务能实现数据重用和软件重用,这为建立松散耦合型的分布式系统提供了方便。实现Web服务需要HTTP、SMTP、SOAP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论