ASP.net的服务(webservice) 编写、发布、调用
采用的工具VS2010生成工程
1. 生成webservice工程:建 ASP.NET 空WEB 应用程序。
2. 在建好的ASP.NET 空WEB应用程序中新建项“web 服务”。
完成上述内容工程结构如下图
首先看webservice1.asmx.cs,默认是有一个HelloWorld()方法的,然后我模仿着写,写多几个方法,就是所谓服务,看例子吧.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Data.SqlClient; using System.Data; using MySql.Data; using MySql; using MySql.Data.MySqlClient; namespace webservice { /// <summary> /// WebService1 的摘要说明 /// </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 WebService1 : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public int GetSum(int a, int b) { return a + b; } [WebMethod] public DataSet query() { DataSet ds = new DataSet(); string connstring = "Database=test;Data Source=localhost;User Id=root;Password=root"; MySqlConnection mycn = new MySqlConnection(connstring); mycn.Open(); MySqlDataAdapter mda = new MySqlDataAdapter("select * from stock_data", mycn); mda.Fill(ds,"stock_data"); return ds; } [WebMethod] public DataSet goldprice() { DataSet ds = new DataSet(); string connstring = "Database=test;Data Source=localhost;User Id=root;Password=root"; MySqlConnection mycn = new MySqlConnection(connstring); mycn.Open(); MySqlDataAdapter mda = new MySqlDataAdapter("select * from goldprice", mycn); mda.Fill(ds, "stock_data"); return ds; } } }
到目前为至C# 的webservice的服务算是写好了。下面我们需要运行一下,按F5,运行成功的界面如下图
二:发布服务,其实和asp.net网站是一样的,首先在IIS的网站节点下添加网站;如下图
然后修改此网站的高级设置: 把应用程序池修改为ASP.NET v4.0即可。
最后浏览此网站http://192.168.56.1/WebService1.asmx若运行的效果与在VS2010运行的效果一样则部署成功了。
三:webservice服务调用
1. 新建一个测试工程,在工程的引用节点中右击“添加服务引用”把浏览器中的URL填写到地址框中点前往,并修改命名空间;如下图
2. 然后再重新生成一下测试项目,最后在测试项目中定义一个测试方法并调用webservice中的方法。代码如下
private void button1_Click(object sender, RoutedEventArgs e) { YDTF.WebService1SoapClient aa = new YDTF.WebService1SoapClient(); button1.Content = aa.HelloWorld(); Menus m = new Menus(); m.Name = "Name"; m.NameSpace = "NameSpace"; DataSet ds = aa.query(); int i = ds.Tables[0].Rows.Count; }
至此,服务由开发到调用全部完成,认为赞的,请评论支持一下!谢了!
(有问题,大家多多交流,加群163259145,加群请记得说:博客园)
--业精于勤而荒于嬉,行成于思而毁于随--