采用的工具VS2010生成工程
1. 生成webservice工程:建 ASP.NET 空WEB 應用程序。
2. 在建好的ASP.NET 空WEB應用程序中新建項“web 服務”。
完成上述內容工程結構如下圖

下面主要的操作就是在webservice1.asmx.cs文件中進行,里面寫了幾個服務,兩個簡單服務兩個查詢數據庫服務;
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
運行成功的界面如下圖

二:發布此webservice
1. 與發布asp.net是一樣的,首先在IIS的網站節點下添加網站;如下圖

2. webservice發布到IIS的虛擬目錄;選擇webservice工程右擊點發布進行發布如下圖

3. 修改此網站的高級設置: 把應用程序池修改為ASP.NET v4.0即可。
4. 瀏覽此網站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;
}
3. 單步調試一下若運行結果和預料一樣則成功了。
