• WebSerivice例子 vs2008 客户端和服务端


    建立服务端:

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

     

    直接按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项目.

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

     

     

    然后把上面的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文件, 改成实际地址.

  • 相关阅读:
    5.11-上位机重新编程
    3.30-计算机系统互联方案
    3.25-两个操作者的通信模式
    3.23-重新定义操作者框架
    go 修改数组中对象的值不生效的解决方法
    go orm QueryTable Filter 不生效解决方法
    Beego orm.Install() 插入 [单条记录] 或 [一批记录],及出现异常 Handler crashed with error <Ormer> table: `.` not found, make sure it was registered with `RegisterModel()`
    go json 序列号、反序列号和数据类型转换
    go json 转换忽略字段、控制字段可有可无
    Flutter 使用 flutter_inappbrowser 加载 H5 及与 js 交互,Methods marked with @UiThread must be executed on the main thread . Current thread: JavaBridge
  • 原文地址:https://www.cnblogs.com/barrysgy/p/2253881.html
Copyright © 2020-2023  润新知