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上面。