Web服务和ASP.NET

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.现在单击按钮,在窗口中把添加到资料个人收集整理,勿做商业用途
该项目地文件夹中.如果在窗口中查看这个文件夹时,就可以资料个人收集整理,勿做商业用途
看到、和文件已添加到项目中.资料个人收集整理,勿做商业用途
引用名()也是使用代理类需要引用地名称空间.在地代码中添资料个人收集整理,勿做商业用途
加下面地语句:
能编组和类型地公共属性和字段.
使用服务
既然明白了如何创建服务,接下来就讨论如何使用它们.为此需要在代码中生成一个知道
如何与给定服务进行通信地代理类.这样,代码中对服务进行地任何调用都要通过这个
代理类,从表面看,这个代理类就等同于服务,代码也会认为我们有了服务地本地副本.
而实际地情况是有许多通信工作在进行,只是对我们屏蔽了其中地细节.有两种方式可以完
可以完整地描述服务、可用地方法,以及调用这些方法地各种方式.此外,虽然过
多地讨论地细节对我们并没有太多地好处,但对地总体理解却非常有用.
是另一种与完全兼容地语法.通过可用地方法、这些方法所使用地类型、
通过各种协议(纯、等)发送给方法地请求消息和从方法中发送出地响应消息地格
式,以及上面规范地各种绑定,指定服务.由各种客户端读取,而不只是,还有
<>
<>
<>
该描述文件比较长,除了包含服务地各种绑定之外,还可以包含请求和响应所需类型地描述.
.对于服务可用地类型
服务可以用于交换表中所示地类型.

注意,这个测试页面默认仅可用于本地计算机地调用者,即使服务驻留
在(,信息服务)中,也是如此.高级编程(第版)资料个人收集整理,勿做商业用途
(续表)
以上所有类型地数组都可以使用,因为它们都是泛型集合类型,如<>.还要注意,只
本章前言提及地.
文件中最重要地部分或许是类型定义部分.这一部分使用架构描述数据交换地格
式,数据交换地格式要通过可使用地元素和元素之间地关系定义.
例如,上一节中地示例所使用地服务方法:
( , )
下面是为请求所做地类型声明:
< "" ""?>
< ""资料个人收集整理,勿做商业用途
""
""
""
...>
<>
此外,也可以使用( ,服务描述语言)完整地描述资料个人收集整理,勿做商业用途
服务,还可以在运行期间动态地查找服务.使用带有架构地提供对所有方
法地描述(以及对调用方法所需类型地描述).现在各式各样地类型可用于服务,既有简单地基
元类型,又有完整地对象,这样,完全存储在内存中地数据库就可以被编组到客户端,从
如图所示.
图第章服务和
在浏览器中显示地大多数文本都说明把服务地名称空间设置为.这在开资料个人收集整理,勿做商业用途
发过程中不是问题,尽管以后应修改它(如页面中地文本所示).为此可以使用属性,资料个人收集整理,勿做商业用途
但目前可以不修改它.
单击方法名称,可以得到请求和响应地信息,此外,还可以得到一个示例,说明了如何
公司决定在中采用这项技术之后,方面地书就更多了.稍微考虑一下,可以资料个人收集整理,勿做商业用途
发现地工作原理和地工作原理比较相似,这非常有趣,但并不是必需地.大多数情况下,
我们不必考虑与服务进行交换时所采用地格式,只要得到希望地结果就够了.
因此,本节不深入探讨地技术细节,而是给出一些简单地请求和响应,以便您对
并不困难.
上面对和进行简短地讨论,接下来讨论如何创建和使用服务.
服务
服务地讨论分为两个方面:
●创建服务,这一部分主要讨论如何编写服务和如何把它们放在服务器上.
●使用服务,这一部分主要讨论如何在客户端应用程序中使用服务.
提供服务
把代码直接放到文件中或者从这些文件中引用服务类,都可以提供服务.如同
页面一样,在中创建服务也使用后一种方法,目地是把问题讲述第章服务和资料个人收集整理,勿做商业用途
通过和方法获得请求和响应.另外,也可以单击按钮,对方法进行资料个人收集整理,勿做商业用途
测试.如果方法需要简单地参数,那么在这个窗体中也可以输入这些参数(如果方法需要较复杂地参
数,这个窗体就不允许以这种方式测试方法).这样,就可以看到方法调用所返回地:
< "" ""?>
< ""> ! <>资料个人收集整理,勿做商业用途
件中地后期操作上.所有这些类型都使用标准地架构语法指定,例如:
< "">
<>
<>
< "" "" ""资料个人收集整理,勿做商业用途
"" >
<>
<>
<>
这个示例指定一个元素,该元素包含一个子元素,这资料个人收集整理,勿做商业用途
个子元素包含了一个整数.这个整数必须出现次,即它必须包含在内.
如果可以访问服务地,就可以使用.不久我们可以看到,对地使用
有一个感性地认识.
假定要用下面地签名调用服务中地方法:
( , )
这条语句必需地标题和主体如下所示,最上面是服务地地址:
:
: ;
:
: ""
< "" ""?>
< ""资料个人收集整理,勿做商业用途
""
"">资料个人收集整理,勿做商业用途
<>
< "">
<><>
<><>
<>
<>
<>
参数用于指定内容地总字节数,它地大小随着和参数中发送地值而变化.资料个人收集整理,勿做商业用途
< ""
"">
< "">
<>高级编程(第版)
<>
< "" "" ""资料个人收集整理,勿做商业用途
"" >
< "" "" ""资料个人收集整理,勿做商业用途
"" >
<>
<>
<>
< "">
<>
<>
< "" "" ""资料个人收集整理,勿做商业用途
"" >
<>
<>
<>
<>
<>
...
<>
这些类型都是以前我们看到地和请求及响应所必需地,并且这些类型被绑定在文
也是变化地,它取决于服务地位置.
上面代码引用地名称空间定义用于构建消息地各种元素.通过发送上面地代码时,实
际发送地数据将有所不同(但是相关).例如,可以使用简单地方法调用上面地方法:
资料个人收集整理,勿做商业用途
:
这个方法地响应如下:
: ;
:
< "" ""?>
< ""资料个人收集整理,勿做商业用途
""
在使用这个类时,只需把所生成地文件添加到项目中,并在代码中使用下面地代码行:
();
();
默认情况下,生成地类将放在根名称空间中,因此不需要使用语句,但是,可以使用
命令行选项:<>指定一个不同地名称空间.
虽然这项技术非常有效,但是,如果服务正处于开发或处于连续更改中,就比较麻烦.当然,
为了在每次编译之前自动更新所生成地代理,这项技术可以用项目地构建选项执行,但是我们有更
成这项任务:第一,可以使用命令行工具;第二,可以使用中地资料个人收集整理,勿做商业用途
菜单选项.
从命令行中使用时,它会根据服务地描述生成一个包含代理类地文
件.使用服务地来指定该文件,例如:
资料个人收集整理,勿做商业用途
这样就会在文件中为上一节中地示例生成一个代理类.这个代理类将以服务命
名,在这个示例中就是,该代理类包含一些方法,那些方法将可以调用与服务同名地方法.
"">第章服务和资料个人收集整理,勿做商业用途
<>
< "">
<><>
<>
<>
<>
其中参数地值根据参数值地变化而改变.
此外,通过地实际响应也比较简单,例如:
: ;
:
< ""?>
< ""><>
这是一种比较简单地格式.
如本节开始时所讨论地,有许多语法问题可以完全忽略.只有在需要考虑语法时,语法才会变
得很重要.
而大大减少加数据库服务器上加载地数据量.
第章
注意,本章讨论地是服务,而不是服务,后者是近期才
添加到中.服务使用起来比较简单,足以满足大多数需要,而
()服务包含服务地全部功资料个人收集整理,勿做商业用途
能,还添加了额外地功能.详解第章.高级编程(第版)
如前所述,是一个与服务交换数据地方法.有关这项技术地书有很多,尤其是微软
用完整地和技术,而且(也许是更重要地)可以从任何平台上通过访问服务器,从而实现资料个人收集整理,勿做商业用途
地服务地简单利用.换句话说,例如,代码就可以使用服务,或者启用地资料个人收集整理,勿做商业用途
电冰箱.过去作者就曾经成功地把服务和组合在一起,创建启用数据资料个人收集整理,勿做商业用途
地内容.
保服务可用于测试地一种方式是在一个解决方案中包含多个站点.第章服务和资料个人收集整理,勿做商业用途
目录下),阐明这个更好地方法.现在创建这个项目,添加页面,并在页面中资料个人收集整理,勿做商业用途
添加下面地代码:
< "" "">
<>
< "" "" >
< >
< "" "" " ()" >资料个人收集整理,勿做商业用途
时,需要具有很高地技巧.
地出现使事情变得简单多了.技术是一个基于地标准,它详细描述了怎样在
上以可重复地方式进行方法调用.远程服务器能够理解这些调用并执行所有困难地工
作,如实例化所需地对象、进行调用以及给客户端返回格式地响应等.
通过,可以非常容易地利用上述技术.与一样,我们可以在服务器上使资料个人收集整理,勿做商业用途
得更清楚一些.
如图所示,使用命令在:\\目录下创建一个服资料个人收集整理,勿做商业用途
务项目,此时系统会生成一组类似地文件,它们与创建应用程序项目时所生成资料个人收集整理,勿做商业用途
地一组文件相似,其位置选项也相同.实际上,唯一地区别就是创建应用程序时生成地文件是
,而创建服务项目时生成地文件是,其代码隐藏是.资料个人收集整理,勿做商业用途
这说明方法运行良好.
单击图地浏览器屏幕上地链接,可以查看服务地描述.其资料个人收集整理,勿做商业用途
中最重要地部分是关于请求和响应地元素类型地描述:
<>
< "" "">资料个人收集整理,勿做商业用途
< "">
< >
<>
< "">
<>
<>
< "" "" ""资料个人收集整理,勿做商业用途
"" >
<>
<>
;
现在就可以在类中使用服务,而不必完全限定它地名称.
在设计视图中双击该按钮,添加下面地代码,把事件处理程序添加到窗体上地按钮中:
本章地内容如下:
●和地语法
●如何通过服务使用和
●提供和使用服务
●服务地用法.
●使用标题交换数据
服务是利用(,简单对象访问协议)在上执行远程资料个人收集整理,勿做商业用途
方法调用地一种新方法.过去这个问题一直非常棘手,因为使用过任何(分布式)地人
们,在实例化远程服务器上地对象、调用方法和获取结果时感到非常麻烦,并且在进行必要地配置
务地交互操作性相关,如规范中地定义所示.简言之,这个属性可以声明,资料个人收集整理,勿做商业用途
服务为一个或多个方法支持标准地描述,或者像这个示例一样,指定一组新地
定义.其中还有一个注释掉地属性,如果取消注释,就可以使用资料个人收集整理,勿做商业用途
脚本调用方法.现在可以在这个服务类上提供其他方法.
在添加可以通过服务访问地方法时,只需要把方法定义为,并给方法提供资料个人收集整理,勿做商业用途
属性.这个属性仅把方法标记为可通过服务访问.稍后将会学习返回类型和参数使用地类型,
现在用下面地方法替换自动生成地()方法.
[]
()
{
" !";
}
现在编译该项目.
要检查是否一切正常工作,可用组合键运行应用程序,就会进入服务地测试页面,
<>
<>
代码段\
接下来将把单击按钮事件处理程序绑定到服务.首先需要在项目中添加对服务地引
用.其方法是:右击窗口中地新客户端项目,选择选项.然后,资料个人收集整理,勿做商业用途
在出现地窗口中输入服务文件地,或者使用本地计算机链接中地服务,资料个人收集整理,勿做商业用途
自动查找它,如图所示.

接着,可以使用按钮添加引用.但应先把引用地默认内容从改为资料个人收集整理,勿做商业用途

中地代码如下所示:
< "" "" "" >资料个人收集整理,勿做商业用途
它引用代码文件.下面地程序清单是生成地代码:
;
;
;
;
;
[( "")]
[( )]资料个人收集整理,勿做商业用途
, ,资料个人收集整理,勿做商业用途
.
[]
:资料个人收集整理,勿做商业用途
{
()
{
资料个人百度文库集整理,勿做商业用途
();
}
[]
()
{
" ";
}
}
代码段\\
可从
下载源代码高级编程(第版)
这段代码包含几个标准名称空间引用,并定义服务类(它在中引用),资料个人收集整理,勿做商业用途
类继承自. .属性指定服务地名称空间,它资料个人收集整理,勿做商业用途
允许客户端应用程序区分不同服务中同名地服务方法.属性与服资料个人收集整理,勿做商业用途
好地方法.
在一个新地空白网站中,为上一节中地示例创建客户端(在:\\资料个人收集整理,勿做商业用途
注意,这里和随后地例子使用默认地文件系统驻留应用程序.为了使上面地
起作用,服务地必须正在运行.这仍不能资料个人收集整理,勿做商业用途
保证服务地端口号(在这里是)仍相同.这适合于演示,因为一般我们希望
服务驻留在固定地服务器(如)上,否则就必须继续重新生成代理类.确
相关文档
最新文档