1、第16章 Web服务和WCF服务,本章主要内容,16.1 Web服务概述 16.2 建立ASP.NET Web服务 16.3 使用Web服务 16.4 WCF服务,16.1 Web服务概述,从表面上看,Web服务就是一个Web应用程序,与ASP.NET网站十分相似。它向外界提供一个能够通过Web进行调用的API(应用程序接口)。从深层次上看,Web服务是一种新型的Web应用程序,它是自包含、自描述、模块化的应用,可以在Web中被描述、发布、查找以及通过Web来调用。 总之,Web服务是一种基于组件的软件平台,是面向服务的Internet应用,不再仅仅是由人们阅读的页面,而是一种以功能为主的服务
2、。,Web服务由4个部分组成,分别是Web服务(Web Service自身)、服务提供者、服务请求者和服务注册机构。通常将服务提供者、服务请求者和服务注册机构称为Web服务的三大角色。,图16-1 Web服务的体系结构,使用Web服务应用程序的过程如下,(1)发布:服务提供者为了使其发布的Web服务可以被用户访问,必须同时发布该服务的描述信息,以便将来供服务请求者查询。 (2)查找:服务请求者要获得自己需要的服务,首先要查找服务。 (3)绑定:在真正开始使用某个Web服务时,需要对该Web服务进行绑定,并调用该服务。,16.2 建立ASP.NET Web服务,在ASP.NET中创建一个Web服
3、务与创建一个网页类似,但是Web服务没有用户界面和可视化组件,并且Web服务仅包含方法。可以在一个扩展名为.asmx的文件中编写Web服务代码,也可以放在代码隐藏文件中。,16.2.1 创建一个Web服务,WebService指令的常用属性及说明,16.2.2 Web方法的定义,在创建一个Web服务项目之后,下一步是定义它的Web方法 。Web方法具体实现了Web服务将提供的特定功能并公开给客户端调用。假设要提供一个计算两个整数之和的Web服务,那么其Web方法的代码如下。 WebMethod public int Add (int a, int b) return a + b; ,16.2.
4、3 Web服务的测试,【Ctrl+F5】组合键运行设计完毕的Web服务,在浏览器显示如图16-3所示的界面,16.2.4 Web服务应用实例,在.NET开发环境中几乎不需要编写代码就能创建一个Web Service,下面通过一个实例具体介绍如何创建Web服务。本实例创建一个具有查询功能的Web服务 ,具体实现请参见源代码下ch16_2 的WebService.asmx。,16.3 使用Web服务,Web服务创建并发布后,并不能产生任何用户界面,需要在其他程序中使用它才能发挥作用。本节将介绍在ASP.NET应用程序中使用Web服务的方法,注意,Web服务并不局限于在ASP.NET中使用,由于本书
5、主要介绍ASP.NET,所以主要探讨这方面的使用。在其他类型的应用程序(如Windows窗体、移动应用程序、数据库等)中使用Web服务也并不难,实际上与在ASP.NET中使用它们非常类似。,16.3.1 Web服务应用实例,下面的实例调用16.2创建的Web服务 ,打开Visual Studio 2010开发环境,新建一个网站ch16_3,该网站有一个默认主页Default.aspx,在该页面中添加一个TextBox控件用于输入姓名,一个Button控件用于查询学生信息和一个Label控件用于显示学生详细信息。,16.3.2 使用Web服务实现简单计算器,以下实例通过调用Web Service
6、方法实现简单计算器 .具体实现请参见源代码下ch16_3 的CalculatorForWeb.aspx 。,16.4 WCF服务,WCF(Windows Communication Foundation)服务是面向服务(Service Oriented)的应用程序新框架。提出WCF的目的是为分布式计算提供可管理的方法和广泛的互操作性,并为服务定位提供直接的支持。,16.4.1 WCF服务概述,WCF包含一个POX(Plain Old XML)的通用对象模型,以及可以利用多种协议进行传输的SOAP消息。WCF也可以深入支持WS-I定义的Web服务标准,因此它可以毫不费力地与其他Web服务平台进行互操作。,16.4.2 创建一个WCF服务,WCF服务应用实例,以下实例建立两个整数加减运算的WCF服务,使用鼠标右键单击网站ch16_4,在弹出的快捷菜单中选择“添加新项”命令,在对话框中选择“WCF服务”,设置名称为Cal后单击“添加”按钮。在网站根文件夹下建立一个WCF服务文件Cal.svc,同时在App_Code文件夹下建立相应的类文件ICal.cs和Cal.cs。具体实现请参见源代码下ch16_4的WcfConsumerCal.aspx.,