WebService介绍(二):发现WebService
在我们的实例中,对于通讯运营商来说,缴费的WebService存在于银行的服务器上,通讯运营商只是该WebService的使用者,或者说消费者。要使用缴费的WebService,必须知道该WebService在哪里,以及怎样才能找到它。
下面先介绍在
VS 2005.net
中如何自动的发现
WebService
。
然后新建一个名称为
Mobile
的
Web
站点,这个站点是此实例中通讯运营商的模拟站点,是
WebService
的消费者。选中该站点——
>
添加
Web
引用,在
URL
中输入
http://localhost/BankService/Account.asmx
,点击“前往”,这时,会自动寻找
WebService
,找到该
WebService
后,在该
URL
后加上“
?wsdl
”,就会定位到该
WebService
所公开的方法。如下图:
现在可以应用了,在
Web
引用名里输入
Bank.WebService
,然后添加引用,这是就会生成该
WebService
所需要的文档。这里
Web
引用名实际上是本地
WebService
代理类所在的命名空间,以后要本地要引用代理类,只需添加
using
Bank.WebService;
即可。
项目中所用到的
WebService
在
App_WebReferences
文件夹下,该代理类的各种文档放在
App_WebReference/Bank/WebService/
下,这和
Java
中是类似的。这种方法也便于在
WebService
较多的情况下方便的查看。
可以看到,
Account
类的
WebService
引用在本地都生成了三个文件:
Account.disco
、
Account.discomap
和
Account.wsdl
。这三个文件的作用分别如下:
Account.disco
:
WebService
的发现文档。其中
•
discoveryRef
:指向服务发现文件的
URL
;
•
contractRef
:指向服务描述文件的
URL
;
Account.wsdl
:下面是
MSDN
“
Web
服务平台”中关于
WSDL
的定义:
WSDL
的定义
当给定一个
Web
服务时,最好有一种标准方法将
Web
服务接受和生成的消息归档,即将
Web
服务协定归档。一种标准的机制可以让开发人员和开发工具更加便利地创建和解释协定
Web
服务描述语言
(WSDL)
是由
Microsoft
和
IBM
合作开发的一种基于
XML
的协定语言
这里已经介绍得很好了,我不再画蛇添足。
Account.discomap
:用于定位
Account.wsdl
和
Account.disco
。