|
编写简单的 Web 服务 |
|
作者:客服中心 文章来源:本站原创 点击数: 更新时间:2006-2-24 |
可以使用任何文本编辑器在几分钟内编写出一个简单的 XML Web 服务。您在本节中创建的服务 MathService 公开将两个数相加、相减、相除和相乘的方法。在页面的顶部,下面的指令除了指定 XML Web 服务的语言(此例中为 C#)外,还将文件标识为该服务。
<%@ WebService Language="C#" Class="MathService" %> 在此同一文件中,定义一个封装服务功能的类。该类应当是公共的,并且可以随意地从 WebService 基类继承。将从该服务公开的每种方法的前面都由 [WebMethod] 属性标记。没有该属性,方法将不从服务公开。这在隐藏由公共 Web 服务方法调用的实现详细信息,或在 WebService 类还用于本地应用程序的情况中(本地应用程序可以使用任何公共类,但只有 WebMethod 类可以作为 XML Web 服务被远程访问)有时很有用。
XML Web 服务文件以 .asmx 文件扩展名保存。与 .aspx 文件一样,这些文件也在服务请求发出(后面的请求由缓存的预编译 type 对象服务)时由 ASP.NET 运行库自动编译。对于 MathService 的情况,已在 .asmx 文件本身中定义了 WebService 类。注意,如果浏览器请求 .asmx 文件,ASP.NET 运行库将返回描述 Web 服务的 XML Web 服务帮助页。
预编译的 XML Web 服务如果有一个要公开为 XML Web 服务的预编译类(并且该类公开用 [WebMethod] 属性标记的方法),则仅用如下命令行即可创建 .asmx 文件。<%@ WebService Class="MyWebApplication.MyWebService" %>
从客户端应用程序使用 XML Web 服务若要使用该服务,需要使用 SDK 中包含的 Web 服务描述语言命令行工具 (WSDL.exe) 创建与 .asmx 文件中定义的类相似的代理类。(它将仅包含 WebMethod 方法。)然后使用包含的此代理类编译代码。WSDL.exe 接受各种命令行选项,但若要创建代理,则只需一个选项:WSDL 的 URI。在此示例中,传递几个指定此代理的首选语言、命名空间和输出位置的额外选项。还对以前保存的 WSDL 文件进行编译,而不是编译服务本身的 URI: wsdl.exe /l:CS /n:MathService /out:MathService.cs MathService.wsdl 一旦代理类存在,即可创建基于它的对象。用该对象进行的每个方法调用然后发送到 XML Web 服务的 URI(通常以 SOAP 请求的形式)。
|
|||||||||||||||||||
返回上一页 |
|||||||||||||||||||