9.1 .2 在.net framework 上所有组件都被设计为可以作为web ser vi ce 提供因此基于.net 平台的web service 可以使用.net framework 的种种先进特性如语言无关性丰富的类 库集成的安全服务等.net 提供的web service 技术采用各种标准化的技术来描述和传 输web service 如xml wsdl soap http-get http-post 等从而在.net framework 上构建的web service 可以轻易的与其他平台上的web service 互相沟通 提示在.net framework beta 1 中web service 的描述语言使用的是sdl services description language 语言而非wsdl 语言 .net framework 中构筑web service 的功能被安置在asp.net 体系中这是因为web service 技术带来的将是一个可编程的web a programmable web asp.net web services 提供了一层抽象使得开发人员不必专注于web services 中使用到的各种底层的例 如http soap wsdl 等细节问题而可以将注意力集中在服务本身提供的功能上 在asp.net 中一个web ser vi ce 被实现为一个类通过指定该类的某些成员函数是 服务的接口来暴露给web service 的请求者从而为请求者提供服务这些类被放置在扩展名为asmx 的文本文件中 web service 的请求者有两种浏览器和程序逻辑代码我们可以直接访问web service 的url 在页面上通过单击调用该服务提供的方法也可以在程序逻辑中访问web service 将远程的web service 作为程序的一个组件看待为了做到后者asp.net 提供了一个web service proxy class 层程序员可以使用.net framework sdk 中附带的wsdl.exe 工具使 用要访问的web ser vi ce 的wsdl 描述来产生一个与该服务对应的proxy class 代理类 在web ser vi ce 客户端程序逻辑只需像使用本地对象一样使用代理类就可以访问远程的 web service 了代理类可以由web service 的提供者生成并以assembly 的形式提供给外界 也可以由服务的使用者根据服务的wsdl 描述生成asp.net 为开发人员隐藏了大部分的 细节例如传输过程的xml schema 和xml 数据的生成数据的发送和接收等等当然 如果开发人员需要访问底层结构来获得更精确的控制.net class library 也提供了一整套 的类来帮助开发人员完成这些工作