WebSerivice例子 vs2008 客户端和服务端

建立服务端:

在VS.net2008中 新建项目->选择asp.net服务应用程序

 WebSerivice例子 vs2008 客户端和服务端_第1张图片

直接按F5运行, 点HelloWorld, 点调用, 可以看到XML返回结果就说明WebService能用了.

 

在vs解决方案资源管理器中, 右击Service.asmx , 选择查看代码 打开Service.asmx, 在HelloWord下自己写几个测试函数:(标记了WebMethod]的可以被远程调用,

(descrition是函数说明) 

   

     public  string HelloWorld() {
         return  " Hello World ";
    }

    [WebMethod(Description= " 整数加法运算 ")]
     public  int Add( int a,  int b)
    {
         return a + b;
    }

    [WebMethod(Description =  " 返回DataSet ")]
     public DataSet GetDataSet()
    {
        DataTable dt =  new DataTable();
        dt.Columns.Add( " name ");
        dt.Columns.Add( " age ");
        dt.Columns.Add( " sex ");
        DataRow dr = dt.NewRow();
        dr[ " name "] =  " jack ";
        dr[ " age "] =  " 25 ";
        dr[ " sex "] =  " ";
        dt.Rows.Add(dr);
        dr = dt.NewRow();
        dr[ " name "] =  " cherry ";
        dr[ " age "] =  " 26 ";
        dr[ " sex "] =  " ";
        dt.Rows.Add(dr);
        DataSet ds =  new DataSet();
        ds.Tables.Add(dt);
         return ds;
    }
按F5运行, 网页地址假设为http://localhost:2582/WebSite1/Service.asmx (下面客户端要调用). 可以看到三个函数, 服务端完成了.

 

 客户端:

可以是Console, Web, Winform.这儿以Console平台为例:

新建一个Console项目.

在解决方案引上右击选择"添加服务引用..."

WebSerivice例子 vs2008 客户端和服务端_第2张图片 

WebSerivice例子 vs2008 客户端和服务端_第3张图片 

然后把上面的webService服务地址复制过来, 点下前往就能看到函数了.

修改下命名空间, 每个WebService要个独立的命名空间, 以防止与当前项目类名相同.

 

修改main函数:

  static void Main(string[] args)

        {
            MyService.ServiceSoapClient client =  new MyService.ServiceSoapClient();
             int result = client.Add( 12);
            MyService.ServiceSoapClient client1 =  new MyService.ServiceSoapClient();
             int result1 = client.Add( 12);
            MyService.ServiceSoapClient client2 =  new MyService.ServiceSoapClient();
             int result2 = client2.Add( 22);
            Console.WriteLine(result +  " \n " + result1 +  " \n " + result2);
             // DataTable DataRow DataView DataColumn都不能在webservices中传过来 只能用dataset了
            DataTable dt = client.GetDataSet().Tables[ 0];
             foreach (DataRow dr  in dt.Rows)
            {
                 string str =  "";
                 foreach (DataColumn dc  in dt.Columns)
                {
                    str += dr[dc].ToString() +  " \t ";
                }
                Console.WriteLine(str);
            }
            Console.ReadKey();
        }
运行可以看到调用了. 客户端要新建项目, 服务端那个项目运行不要关闭.

如果WebService想发布, 选择发布网站, 把生成的dll, 拷贝到IIS运行程序目录中. 客户端修改app.config文件, 改成实际地址.

你可能感兴趣的:(vs2008)