首先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice 就是个对外的接口,里面有函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态.即是客户不了解(也不需要)其过程,他们只获取数据. webservice 传递的数据只能是序列化的数据,典型的就是xml 数据,这里我们也只讨论 xml 数据的传输. 有了一些对xml webservice的初步了解后,我们将切入正题,即是用一个具体的webservice 事例的形式来讲解具体的webservice 用法,用具体的事例来讲解一个概念我想怎么也要比单纯的说理能让人容易理解吧. 这里,我们将以一个简单的分布式课件搜索系统为例来讲解.使用VS2003 为编译环境,C#为语言,SqlServcer2000 为数据库.(这个例子来源于一位网上朋友的文章的启发,觉得很能代表 webservice 的特点,就按那个想法做了这么个系统来示例了) 首先,明确我们要做什么.我们需要一个对客户的接口,也就是个站点,我们把它称做 ServiceGatherSite,它是何种形式都无所谓,甚至它本身并不需要数据库,它只是提供给用户一个查询的接口,真正的服务,普通用户是不接触到的.然后,这里我们还需要若干个提供服务的站点,我们可以称它们为资源站,这里为简单起见,假设有两个资源站,分别叫 WebSiteA,WebSiteB,它们可以是不对外公布的,只是为了丰富查询数据而存在.最后,是我们最需要关注的东西---资源站提供给ServiceGatherSite 的服务.两个资源站,就有两个服务,我们称为SiteAService 和 SiteBService.两个服务间没有任何关系,内部提供的方法也完全没关联,只是需要把方法如何使用告诉 ServiceGatherSite,意思是,服务只提供查询接口,返回的数据如何处理,服务本身并不管,全由使用服务的站点分配. 写了这么多,算是简要的介绍了下有关 xml webservice 的概念和我们这个例子的结构,下篇文章,我们将开始真正进入代码的设计阶段. 这个专题主要讲述的是webservice,因此这里我们的代码以Webservice 相关为主,而其他工程,例如:ServiceGatherSite,WebSiteA 等,只将简略介绍. 在VS2003 中,开发一个webservice 并不是件困难的事,首先,我们新建一个webservice 项目(文件->新建->项目->C#->Web 服务应用程序) 建完这个工程,我们将看到一个叫 Service1.asmx的文件,这就是webser...