欢迎您来到中国万网客户服务中心!
客服导航
如果您在使用我们的产品中遇到问题,建议您首先在“常见问题”中查询解决方法;
如果没有找到该问题的解决方法,您可以在“问题搜索”中进行搜索;
如果搜索后没有找到满意答案,您可以“在线提问”,我们会在1个工作日内给您答复。
您现在的位置: 中国万网客服中心 >> 常见问题 >> 软件常见问题 >> ASP.NET程序模板 >> 文章正文

编写简单的 Web 服务

作者:客服中心    文章来源:本站原创    点击数:    更新时间:2006-2-24

可以使用任何文本编辑器在几分钟内编写出一个简单的 XML Web 服务。您在本节中创建的服务 MathService 公开将两个数相加、相减、相除和相乘的方法。在页面的顶部,下面的指令除了指定 XML Web 服务的语言(此例中为 C#)外,还将文件标识为该服务。
<%@ WebService Language="C#" Class="MathService" %>

在此同一文件中,定义一个封装服务功能的类。该类应当是公共的,并且可以随意地从 WebService 基类继承。将从该服务公开的每种方法的前面都由 [WebMethod] 属性标记。没有该属性,方法将不从服务公开。这在隐藏由公共 Web 服务方法调用的实现详细信息,或在 WebService 类还用于本地应用程序的情况中(本地应用程序可以使用任何公共类,但只有 WebMethod 类可以作为 XML Web 服务被远程访问)有时很有用。

using System;
using System.Web.Services;

public class MathService : WebService {

   [WebMethod] public int Add(int a, int b) {
       return a + b;
   }

}
C# VB JScript  

XML Web 服务文件以 .asmx 文件扩展名保存。与 .aspx 文件一样,这些文件也在服务请求发出(后面的请求由缓存的预编译 type 对象服务)时由 ASP.NET 运行库自动编译。对于 MathService 的情况,已在 .asmx 文件本身中定义了 WebService 类。注意,如果浏览器请求 .asmx 文件,ASP.NET 运行库将返回描述 Web 服务的 XML Web 服务帮助页。

 
C# MathService.asmx

[查看源代码]
 

预编译的 XML Web 服务
如果有一个要公开为 XML Web 服务的预编译类(并且该类公开用 [WebMethod] 属性标记的方法),则仅用如下命令行即可创建 .asmx 文件。
<%@ WebService Class="MyWebApplication.MyWebService" %>

MyWebApplication.MyWebService 定义 WebService 类,并且包含在 ASP.NET 应用程序的 \bin 子目录中。

从客户端应用程序使用 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 请求的形式)。

 
C# MathServiceClient.aspx

[查看源代码]


返回上一页
中国万网旗下网站:中国万网 买麦网
Copyright © 2007 中国万网 版权所有
推荐使用1024×768分辨率浏览,并关闭窗口弹出阻止程序