1. 程式人生 > >C# webservice 編寫、釋出、呼叫

C# webservice 編寫、釋出、呼叫

採用的工具VS2010生成工程

1. 生成webservice工程:建 ASP.NET 空WEB 應用程式。

2. 在建好的ASP.NET 空WEB應用程式中新建項“web 服務”。

完成上述內容工程結構如下圖

下面主要的操作就是在webservice1.asmx.cs檔案中進行,裡面寫了幾個服務,兩個簡單服務兩個查詢資料庫服務;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

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中的方法。程式碼如下

1

2

3

4

5

6

7

8

9

10

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. 單步除錯一下若執行結果和預料一樣則成功了。