第12章Web服务

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第12章Web服务在ASP.NET3.5框架中,集成了Web服务的特点,并对Web服务做了大力的宣扬。目前Web服务已经被越来越多的人接受,相关的各项新技术层出不穷。本章将向大家介绍ASP.NETWeb服务的相关基础知识,以及使用ASP.NET创建Web服务的实例。章节内容12.1理解基于XML的Web服务12.2创建Web服务12.3使用Web服务12.1理解基于XML的Web服务在Web程序开发过程中,Web服务越来越凸显出其重要性,Web服务是Web服务器上的一些组件,客户端程序可以通过HTTP请求来调用这些服务。在.NET平台中,开发人员可以非常容易地创建Web服务,并且实现在客户端的调用。12.1.1什么是Web服务Web服务也叫做WebService,它是服务器上的一个应用单元,通过标准的XML数据格式和通用的Web协议为其他应用程序提供服务。Web服务可以看作是Web应用程序一个新的分支,它可以实现从简单的请求到复杂的商务处理功能。12.1.2Web服务的技术支持在Web服务中,将现有的Web开发技术做了系统的整合和利用。在Web服务中可以重复使用的架构和技术如下。◦Web服务器:在Web服务的实现过程中,不需要考虑Web服务器的因素,但是在.NET架构中,通过运行在IIS中的XML分析器和ASP脚本来实现Web服务,而对于这些技术都是安装在Web服务器上的,因此只要存在Web服务器的地方就可以使用Web服务,从而提高了Web服务的使用面,也使Web服务得到更广泛的推广。12.1.2Web服务的技术支持◦验证技术:在传统的Web开发中,使用的验证技术,完全可以应用到Web服务当中,包括基本验证、分类验证等。这样Web服务在客户端使用时所做的所有验证,完全可以使用Web开发中提供的技术。◦加密技术:在Web开发中,经常会涉及到客户的账户信息等需要考虑信息安全的数据,在Web技术中提供了数据加密技术。在Web服务中也会经常发送和接收类似的敏感数据,而Web服务中可以使用与常规的Web通信相同的加密技术,来解决这些问题。◦应用程序服务器:在Web服务中,可以使用传统Web技术使用的组件,如事物处理服务、对象池、连接池等,通过把Web服务安装在一个组件容器中(COM+/EJB),用户就可以利用这些来自应用程序服务器的服务。12.1.3Web服务的优势Web服务是.NET技术的核心,通过Web接口提供功能程序段,通过标准的Internet协议访问Web组件,它可以使用标准的互联网协议,进行数据传递。Web服务可以看做是Web编程中的组件编程。从理论上讲,开发人员可通过调用Web应用编程接口(API)将Web服务集成到应用程序中,不同的是WebAPI调用可通过互联网发送给位于远程系统中的某一服务。12.1.3Web服务的优势Web服务为程序开发提供了便捷,通过第三方将系统功能整合到指定的客户应用程序中,这样,在整个应用程序中,就无需设计所需的功能,只需要简单的访问合适的Web服务即可。使用Web服务来开发应用程序具有以下优势。◦平台的无关性◦功能复用◦服务器的独立性◦通信的安全性12.1.4Web服务的基础结构在Web服务中使用SOA(Serveice-OrientedArchitecture)组件模型,将不同的功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。在SOA中,接口采用中立的方式定义,接口只声明开发人员如何继承和实现该接口,接口的声明应该是中立的、不依赖于平台、语言而实现的。接口相当于如何规定开发人员规范的进行Web服务中功能的实现。SOA模型具有以下特点。◦SOA服务具有独立的XML文档,使用WSDL语言进行描述。WSDL语言也叫做Web服务描述语言,是用于描述Web服务的标准语言,它可以用独立于Web服务新版本的方式设计。◦SOA服务用XMLSchema(也叫做XSD,XMLSchemaDefinition)定义的消息进行通信。WebService体系结构12.2创建Web服务使用ASP.NET3.5可以轻松快捷地创建Web服务,在创建Web服务应用程序后,系统会自动创建Web服务应用程序并生成相关代码,通过修改自动生成的代码,能够快速创建和自定义Web服务应用程序。在使用ASP.NET平台创建Web服务之前,首先需要了解ASP.NETWeb服务的一些特点。12.2.1@WebService指令在ASP.NET3.5中创建Web服务时,需要了解WebServices指令,该指令是所有的Web服务都必须具有的。WebServices指令代码如下。%@WebServiceLanguage=C#CodeBehind=~/App_Code/demo.csClass=demo%WebServices指令与普通的ASP.NETWeb应用程序中的%Page%指令类似,主要用来标注所创建的页面使用的协议类型。12.2.1@WebService指令在WebServices指令中还包括如下一些属性。◦Language属性:指定Web服务使用的语言。可以是ASP.NET支持的任何语言,包括C#、VB和JScript。该属性是可选的,如果没设置该属性,编译器将根据类文件使用的扩展名推导出所使用的语言。◦CodeBehind属性:指定WebServices类的源文件的名称。◦Debug属性:指示是否应使用调试符号编译Web服务。如果应使用调试符号编译Web服务,Debug属性则为true,否则为false。默认值为false。◦Class属性:指定实现Web服务的类,该服务在更改后第一次访问WebServices时被自动编译。该值可以是任何有效的类名。该属性指定的类可以存储在单独的代码隐藏文件中,也可以存储在与Web服务指令相同的文件中。该属性是Web服务必需的。12.2.1@WebService指令在@Assembly指令中的属性所表示的意义如下。◦Name属性:指示要链接到Web服务的程序集的名称。◦Src属性:要动态编译和链接的源文件的路径。12.2.2定义Web服务方法在定义Web服务方法之前,首先要使用ASP.NET平台来创建一个Web服务。打开VS2008,单击“文件”→“新建网站”命令,这时会打开“新建网站”窗口。在其中可以看到在.NET框架中已经封装好了ASP.NETWeb服务的内容。接下来,选中ASP.NETWeb服务选项,然后在下面的文本框中输入新建Web服务的名称,同时需要选择此Web服务所使用的编程语言。填写好之后,单击“确定”按钮,即可创建一个全新的Web服务。12.2.2定义Web服务方法开发人员新添加的方法,必须位于[WebMethod]属性的后面,在这里将现有的HelloWorld()方法做一定的修改,其效果与新添加方法一样。在第10章中讲解AJAX技术时,提到过异步调用WebService,在此将上面代码中的HelloWorld()方法修改为相同的代码。[WebMethod]publicstringHelloWorld(stringname){returnstring.Format(Hello{0}!,name);}12.2.3测试Web服务在上一节中建立了一个ASP.NETWeb服务,在Web服务创建之后,最好先做一下测试,来验证服务的正确性,这样,如果Web服务有任何错误可以立即检测出来,避免为以后的开发带来麻烦。Web服务类的运行与普通的Web页面运行方法类似,可以直接在页面中右击,在右键菜单中单击“在浏览器中查看”命令。运行上一节中的示例,其运行结果如下图所示。12.2.3测试Web服务12.2.3测试Web服务单击上图中的“helloWorld”链接,会弹出如下图所示的页面。12.2.3测试Web服务开发人员可以在页面中的文本框中输入信息,然后单击“调用”按钮,程序会返回下图所示的信息。12.3使用Web服务项目中调用的应用程序必须可以通过某种方式与Web服务进行交互,并且在运行时能够找到Web服务,这就凸显出添加Web服务引用的重要性,这种方法将生成与Web服务的连接,并提供Web服务的本地表示形式的代理类。一般向项目中添加Web引用需要遵循以下几个步骤。12.3使用Web服务(1)在“解决方案资源管理器”中右击“项目”名称,这时会弹出图12-1所示的菜单,单击“添加Web引用”命令,弹出如图12-2所示的“添加Web引用”窗口。(2)在图12-2所示的“添加Web引用”窗口中,开发人员需要在URL文本框中输入可获取报表服务器Web服务说明的URL,然后单击文本框后面的“前往”按钮即可检索有关Web服务的信息,如URL地址为。在单击“前往”按钮之后,会得到如图12-3所示的查询结果。12.3使用Web服务(3)在查找到Web服务之后,开发人员可以在图12-3中“Web引用名”文本框中,将Web引用重命名,在这里将Web引用命名为demoService。(4)单击“添加引用”按钮即可添加目标Web服务的Web引用。VisualStudio将下载服务说明并生成一个代理类,以在应用程序和报表服务器Web服务之间进行连接。12.3使用Web服务图12-1添加菜单12.3使用Web服务图12-2添加Web引用12.3使用Web服务图12-3查询指定URL的Web服务

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功