English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 业界动态 >> 构建一个Web服务

 

构建一个Web服务

威盾防火墙 2015-02-05

 

创建一个Web服务的过程如下。

创建Web服务

添加Web方法

编译生成Web服务

测试Web方法调用

【例14-1】下面使用VWD 2008创建一个简单的Web服务。

(1) 创建Web服务项目

选择【文件】| 【新建网站】命令,之后在打开的【新建网站】模板中再选择【ASP.NET Web服务】模板,创建一个新的Web服务项目,如图14-2所示。确定已将【位置】设为【文件系统】,将编程语言Visual C#。把网站名称设置为WebServiceSample,单击【确定】按钮。

VWD 2008将生成一个网站。站点中包含两个文件夹(分别为App_Code和App_Data)和一个文件,文件的名称为Service.asmx。.asmx文件包含Web服务的定义。该Web服务的代码是在Service类中定义的,该类存储在App_Code文件夹的Service.cs文件中,【代码和文本编辑器】将显示这个文件。

 
图14-2  选择【新建网站】的【ASP.NET Web服务】模板
在【代码和文本编辑器】将显示的文件中,检查一下Service.cs文件,项目模板在该文件中生成了一个派生自System.Web.Services.WebService的Service类。在这个文件中,VWD 2008模板提供了一个名称为HelloWorld的示范性Web服务方法,这个方法简单地返回字符串"HelloWorld"。示例代码说明了Web服务的方法是如何编码的 (它应是公共的),用[WebMethod]属性标记,如下所示:
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.Services;  
  6. [WebService(Namespace = "http://tempuri.org/")]  
  7. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
  8. // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。  
  9. // [System.Web.Script.Services.ScriptService]  
  10. public class Service : System.Web.Services.WebService  
  11. {  
  12.     public Service () {  
  13.         //如果使用设计的组件,请取消注释以下行   
  14.         //InitializeComponent();   
  15.     }  
  16.     [WebMethod]  
  17.     public string HelloWorld() {  
  18.         return "Hello World";  
  19.     }  
  20.  }  

在Service类的上方,还可以看到两个属性,[WebService]属性指出了用于标识该Web服务的命名空间。

[WebServiceBinding]属性指定了Web服务遵循的Web服务互操作性等级规范。请修改[WebService]属性的值,示例如下:

  1. [WebService(Namespace = "http://www.hnyjj.com/webservices")]  
  2. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
  3. public class Service : System.Web.Services.WebService  
  4. {  
  5.        …  
  6. }  

(2) 添加Web方法

可以给Web服务添加一个或多个定制方法。在这里改变HelloWorld方法的代码,让它接受字符串并返回个性化问候。

  1. [WebMethod]  
  2.    public string HelloWorld(string yourName)  
  3.    {  
  4.        return string.Format("Hello {0}", yourName);  
  5.    }  

(3) 选择【生成】|【生成网站】命令创建来Web服务。

ASP.NET运行库使用反射技术读取Web服务专用的一些属性,例如[WebMethod],把方法提供为Web服务的操作。ASP.NET运行库还提供了WSDL来描述服务。

要在为Web服务生成的描述信息中唯一地标识XML元素,应添加一个名称空间。这个示例在类Service中用[WebService]属性添加了名称空间http://www.hnyjj.com/ webservices。当然,可以使用其他字符串唯一地标识XML元素,例如,公司页面的URL链接。Web链接不一定存在,它仅用于唯一标识。如果使用基于公司网址的名称空间,就可以确保其他公司不会使用这个名称空间。

如果没有改变XML名称空间,使用的默认名称空间是http://tempuri.org。从学习的角度来看,这个默认的名称空间就已足够了,但不应部署一个使用它的Web服务产品。


相关内容: 最新内容:
通过Web标准和Web服务提供互操作性[2015-02-05]
14.1.2 Web服务介绍[2015-02-05]
14.5 消费Web服务[2015-02-05]
1.5.3 防盗链配置实例[2015-02-05]
PHP中几个常用的时间应用方式[2015-02-05]
网站开发中PHP语言优缺点[2015-02-05]