zoukankan      html  css  js  c++  java
  • 【ASP.NET】创建第一个ASP.NET WebService程序

    一. 准备条件

    1. 打开Visual Studio,并且准备创建一个.NET Framework的web网站。(ASP.NET Core不支持创建WebService)

    二. 创建WebService实例

    新建一个空的.NET Framework网站

     添加WebService类

    WebService1.asmx的名字可以改成其它你想要的,这个文件名也就是最后webservice的网址名称。

     这里笔者取名为CalculartorWebService.asmx,并且内部代码为:

        /// <summary>
        /// Summary description for WebService1
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
        // [System.Web.Script.Services.ScriptService]
        public class CalculatorWebService : System.Web.Services.WebService
        {
    
            [WebMethod(Description = "Return the value a plus b")]
            public int Add(int a, int b) {
                return a + b;
            }
    
            [WebMethod(Description = "Return the value a minus b")]
            public int Substract(int a, int b) {
                return a - b;
            }
        }

    被[WebMethod]属性所标记的方法会被视为公共web接口,可以被远程调用。

    然后 Build 程序,Build成功后,启动程序。便可以看到创建的WebService程序。

     可以看出,WebService罗列出了所有的Web方法 和 方法的描述。你也可以点进每一个方法的内部查看详细的信息和运行测试数据。

    除此之外,你也可以添加多个WebService,然后启动程序。

     

     

    然后可以通过访问地址

    http://localhost:57932/CalculatorWebService.asmx

    http://localhost:57932/CarService.asmx

    来查看上面定义的WebService接口。

    三. 调用WebService数据

    在创建完成WebService后,需要进行部署WebService服务。

    这里笔者启动了第二个Visual Studio实例,并且创建了一个控制台应用程序。笔者将会用这个程序来调用上面创建的WebService数据。

    添加服务引用

    NameSpace你可以随便命名为你想要的,后面调用这个服务都会用到这个命名空间。

     

     点击Finish后,等待程序完成WebService的引用。在引用完成后,你就可以调用这个web服务了。笔者除了引用了http://localhost:57932/CalculatorWebService.asmx, 还引用了http://localhost:57932/CarService.asmx。成功添加引用后,会在你的Connected Services目录下显示你所添加的引用。

     

    然后你就可以通过如下的代码的进行调用,注意,把命名空间和类名更换为你自己的名称。

    //调用CalculatorService下的CalculatorWebServiceSoapCleint类下的Add方法
    CalculatorService.CalculatorWebServiceSoapClient calculatorService = new CalculatorService.CalculatorWebServiceSoapClient(CalculatorService.CalculatorWebServiceSoapClient.EndpointConfiguration.CalculatorWebServiceSoap);
    Console.WriteLine(calculatorService.AddAsync(1, 2).GetAwaiter().GetResult());
    
    //调用CarService下的CarServiceSoapClient类下的GetBrand方法
    CarService.CarServiceSoapClient carService = new CarService.CarServiceSoapClient(CarService.CarServiceSoapClient.EndpointConfiguration.CarServiceSoap);
    Console.WriteLine(carService.GetBrandAsync().GetAwaiter().GetResult().Body.GetBrandResult);

    输出结果

    四. WebAPI和WebService的简单对比

    webapi用的是http协议,

    webservice用的是soap协议webapi无状态,相对webservice更轻量级。webapi支持如get,post等http操作

    soap 协议:它描述了一种在分散或分布式的环境中如何交换信息的轻量级协议。soap在http协议的基础上,一个基于XML的协议。

    SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数, 放在HTTP BODY上提交个WEB SERVICE服务器(SERVLET,ASP什么的) 处理完成后,结果也写成XML作为RESPONSE送回用户端, 为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。

  • 相关阅读:
    css实现强制不换行/自动换行/强制换行
    JavaScript模仿语言包式的简繁转换功能插件
    全国DNS服务器IP地址【电信、网通、铁通】
    删除隐藏网卡(本机IP地址被占用)4个方法
    javascript自定义insertAfter()函数
    HTTP协议header头域
    使用css模拟vista毛玻璃效果
    GRUB4DOS加载ISO启动光盘完美解决方案
    javascript在IE和Firefox中兼容性问题
    XML格式的字符串与DataSet之间的转换
  • 原文地址:https://www.cnblogs.com/HDK2016/p/15394358.html
Copyright © 2011-2022 走看看