分布式技术 webservice

  web service 是一个平台独立的、低耦合的、自包含的、基于编程的web的应用程序,可使用开发的XML(标准通用标记语言下的一个字表)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

  web service技术能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件就可互相交换数据或集成。依据webservice规范实施应用之间,无论他们所使用的语言,平台或内部协议是什么,都可以互相交换数据。webservice是自描述、自包含的可用网络模块、可执行具体业务功能。webservice也容易部署,因为他们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML/HTTP.webservice减少了应用接口的花费,webservice为整个企业甚至多个组织之间的业务流程集成提供了一个通用机制。

 

1.创建一个webservice并调用

(1)打开vs2013,新建空项目webappservice,注意选择.NET Framework 的版本,这里选择.NET Framework4.5.

 

(2)右击项目webappservice,选择“添加新项 -> web -> web 服务”,命名“mywebservice.asmx”.

 

 

(3)在mywebservice1 类中默认会添加一个 Hello World 方法,我加一个方法。

 /// <summary>
        /// 姓名+年龄
        /// </summary>
        /// <param name="name"></param>
        /// <param name="age"></param>
        /// <returns></returns>
        [WebMethod]
        public string people(string name, string age)
        {
            return "姓名:" + name + "年龄:" + age;
        }

(4)直接在浏览器中浏览MyWebService1.asmx

(5)单机这个方法people,如下图

 

(6)直接调用,效果如图。

返回是一个XML文件,在项目开发中,我们一般不这样的调用,而是通过添加web引用的方式。

所以,在需要引用webservice的时候,需要将此服务运行起来。右击,“在浏览器中查看”,当然这web服务就在IIS Express里面了。

 

(7)右击项目webappService,选择“添加->新建项->web窗体”,命名WebForm1.aspx,并在里面添加内容:

       <div>
            <table>
                <tr>
                    <td>姓名</td>
                    <td>
                        <asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
                </tr>
                <tr>
                    <td>年龄</td>
                    <td>
                        <asp:TextBox ID="txtAge" runat="server"></asp:TextBox></td>
                </tr>
                <tr>
                    <td></td>
                    <td>
                        <asp:Button ID="btnAction" runat="server" Text="执行" />
                    </td>
                </tr>
                <tr>
                     <td>结果</td>
                   <td> <asp:TextBox ID="txtResult" runat="server"></asp:TextBox></td>

                </tr>
            </table>
        </div>
    </form>

(8)在项目右击"添加服务引用",点击“发现”

 

当然,如果我们把web服务部署到IIS上,也可以直接在地址栏中输入web服务地址,然后单击“转到”按钮。

(9)webForm1后台代码:

 /// <summary>
       /// 执行
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
        protected void btnAction_Click(object sender, EventArgs e)
        {
            ServiceReference1.MyWebService1SoapClient _client = new ServiceReference1.MyWebService1SoapClient();
            txtResult.Text = _client.people(txtName.Text.Trim(), txtAge.Text.Trim());
        }

(10)右击webForm1.aspx,在;浏览器中查看,运行结果如图,(注:不要关闭在浏览器中打开的http://localhost:50785/MyWebService1.asmx)

为了方便,这里直接在项目中运行MyWebService1.asmx此服务。一般在项目中,我们会把所有的web服务单独放到一个web站点,然后发布到服务器IIS上面。

 

posted @ 2017-08-07 22:39  秋风过、枯叶落  阅读(1612)  评论(0编辑  收藏  举报