zoukankan      html  css  js  c++  java
  • WebService有什么用?

    入门之前先简单介绍下WCF。在用WebService做开发时,很多人都不知道WCF和WebService之间的关系。实际上WCF包含了WebService,这是一个很强悍的通信技术应用框架。微软把.NET平台下所有涉及到分布式通信的一些技术都融合到wcf中来。比如webservice已经融合到wcf来了、MSQ(微软的消息队列)甚至还融合一些通信协议,比如TCP,UDP协议。所以wcf把.NET平台下的通信问题给解决了。

    这样说你也许看了可能还无法理解,这里我们来模拟一个如何解决跨系统、跨平台、跨服务器进行通信情景(如下图)。

    WebService的本质:可以用来解决通信的问题--------------------------------------------------------------------

    需求:让张三公司下的这些系统能够进行通信,比如我用C#来写一个计算加减乘除的程序让JAVA或PHP的系统直接来用它。

    这无疑是一件令人难以理解的问题。这时候我们可以尝试使用WebService来处理这一件费解的事。

    如何创建及使用WebService?

    步骤:

    1.添加一个Web服务

    2.添加完成后,可以看到会产生一个.asmx的文件,我们需要看的是产生的.asmx.cs后台页面。在.NET3.5或早期版本,这个CS页面一般会自动生成到App_Code文件夹里。当然,.NET4.0(包含更高版本)是以节点方式产生。这里看下这个文件的代码结构:

    复制代码
        /// <summary>
        /// WebServiceDemo 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
        // [System.Web.Script.Services.ScriptService]
        public class WebServiceDemo : System.Web.Services.WebService
        {
            [WebMethod]
            public string HelloWorld()
            {
                return "Hello ";
            }
        }
    复制代码

    这个代码其实很简单,一个普通类来继承System.Web.Services.WebService这个基类。

    [WebMethod]属性会将方法附加到Public 方法表示希望将该方法公开为 XML Web services 的一部分。通俗的讲就是在没有加这个属性时,你写的WebService就无法被外部访问。

    3.创建一个简单的WebService

     [WebMethod]
     public int Add(int a, int b) 
     {
         return a + b;
     }

    4.引用:通过Winform程序去调用它

     -4.1创建完winform程序后,添加服务引用

    -4.2将WebService地址放到地址去搜索服务,这样就可以看到刚才创建的方法了

    5.启用刚才创建的winform程序来调用这个程序

    复制代码
    private void button1_Click(object sender, EventArgs e)
    {
        int a = int.Parse(t1.Text);
        int b = int.Parse(t2.Text);
        Var_WebService.WebServiceDemoSoapClient client = new Var_WebService.WebServiceDemoSoapClient();//WebService走的是Soap协议
        int result= client.Add(a, b);
        MessageBox.Show(result.ToString());
    }
    复制代码

    结果:

  • 相关阅读:
    Delphi对象的产生和消亡过程
    WIN32的时空观
    PHP类的用法
    D7的System.pas单元的实现部分
    PHP的最简单用法
    C调用Lua
    js连连看
    动态属性的一个架构
    Entity Framework开源了
    apachesolr4.0.0ALPHA中文分析器IKAnalyzer4.0
  • 原文地址:https://www.cnblogs.com/bdqczhl/p/8777180.html
Copyright © 2011-2022 走看看