天使半只翼

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#建立Web Service

    1.在wwwroot目录下建立一个叫做Webservice的目录。

    2.建立下面这样一个文件:

using System;  
using System.Web.Services;  
public class AddNumbers : WebService  
{  
    [WebMethod]  
    public int Add(int a, int b)
    {  
        int sum;  
        sum = a + b;  
        return sum;  
    }  
}

 

 

    3.将这个文件保存为AddService.asmx(asmx是扩展名),保存到Webservice的目录中

    4.现在我们建立了Web服务,已经准备好客户端使用

    5.现在,你可以用下面的URL访问这个Web服务:
    地址/Webservice/Addservice.asmx/Add?a=10&b=5结果将以XML格式返回


    在客户机上部署这个服务

    1.在命令行输入:
    WSDL地址/WebService/MathService.asmx /n:NameSp /out:FileName.cs这个操作将建立一个称为FileName.cs的文件

    说明:WSDL 指的是WebServices Description Language ,这个程序在Program Files\Microsoft.NET\FrameworkSDK\Bin 目录中。

    NameSp是我们设置的名字空间的名字,将在后面部署这个服务的客户端的实现代码中使用到。

    2.编译

    CSC /t:library /r:system.web.dll /r:system.xml.dll FileName.cs

    上述命令将生成一个dll文件,名字就是上面的asmx文件中的公共类的名字,在我们的例子中,就是:AddNumbers.dll

    3.将生成的dll文件放到部署机的wwwroot\bin目录中。

    在部署机的asp/aspx 中调用这个Web Service

<%@ import Namespace = "NameSp" %> 
<script language = "c#" runat = "server"> 
public void Page_Load(object o, EventArgs e)
{  
int x = 10;  
int y = 5;  
int sum;  
//Instantiating the public class of the webservice  
AddNumbers AN = new AddNumbers();  
sum = AN.Add(x,y);  
string str = sum.ToString();  
response.writeline(str);  
}  
</script>  

 

    以上介绍C#建立Web Service。

 

 

  创建发现文件

  在访问一个已有的Web Service以前,你必须先得找到并整合这个Web Service,这个过程就是Web Service的发现过程。通过这个发现过程,你才知道这个Web Service能为你提供什么样的服务以及你怎么和它实现互动。发现文件是一个以.DISCO为扩展名的XML文件。在实际运用中,你是不必为每一个Web Service创建发现文件的。以下就是一个发现文件的例子:

 

<?xml version="1.0" ?>
<disco:discovery xmlns:disco="http://schemas.xmlsoap.org/disco/">
<scl:contractRef ref="http://localhost/work/aspx/SampleService.asmx?SDL"/>
</disco:discovery>

 

 

  我们先将这个文件命名为“SampleService.disco”,并将它保存在该Web Service的目录下。如果我们是在“/work/aspx”目录下创建Web Service的话,我们就可以运用更灵活的“动态发现”了。“动态发现”能自动为我们检测“/work/aspx”目录以及子目录下的所有*.DISCO文件的,这样就省了我们不少功夫。

 

<?xml version="1.0" ?>
<dynamicDiscovery xmlns="urn:schemas-dynamicdiscovery:disco.2000-03-17">
</dynamicDiscovery>

 

 

  你可以在http://services3.xmethods.net/dotnet/default.disco获得一份能使用的发现文件。通过分析发现文件,我们可以找到所需的Web Service。然而,在得到发现文件前你必须知道这个发现文件的确切的URL。否则你还是找不到你要的发现文件的,那么你当然就不能找到你要的Web Service了。这样,我们现在就要用到一项新技术了――通用发现,描述和整合(Universal Description,Discovery,and Integration,UDDI)来为已存在的Web Service做宣传了。UDDI是公开的,基于Internet的。这项技术目前还处于起初阶段,所以正不断发展着。你可以在http://uddi.microsoft.com/ 获得有关UDDI的参考。

  发布这个Web Service

  发布Web Service是很简单的。和Asp.net的程序差不多,你只要将.asmx文件和.disco文件拷贝到相应的目录,这样如果一切正常,这个Web Service就可以工作了。

posted on 2012-06-05 16:52  天使半只翼  阅读(337)  评论(0编辑  收藏  举报