第10章 ASP NET Web服務(wù)_第1頁(yè)
第10章 ASP NET Web服務(wù)_第2頁(yè)
第10章 ASP NET Web服務(wù)_第3頁(yè)
第10章 ASP NET Web服務(wù)_第4頁(yè)
第10章 ASP NET Web服務(wù)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第10章章 ASP.NET Web服務(wù)服務(wù)Web服務(wù)服務(wù)(Web Service)是一項(xiàng)新興發(fā)展的技術(shù)。它)是一項(xiàng)新興發(fā)展的技術(shù)。它以以“軟件就是服務(wù)軟件就是服務(wù)”為理想目標(biāo),使得在系統(tǒng)架構(gòu)以及軟為理想目標(biāo),使得在系統(tǒng)架構(gòu)以及軟件開(kāi)發(fā)等領(lǐng)域都發(fā)生了深刻的變化。件開(kāi)發(fā)等領(lǐng)域都發(fā)生了深刻的變化。Web服務(wù)服務(wù)是微軟是微軟.NET策略計(jì)劃的基礎(chǔ)。策略計(jì)劃的基礎(chǔ)。 Web服務(wù)服務(wù)就是一個(gè)應(yīng)用程序,它向外界暴露出一個(gè)能夠就是一個(gè)應(yīng)用程序,它向外界暴露出一個(gè)能夠通過(guò)通過(guò)Web進(jìn)行調(diào)用的進(jìn)行調(diào)用的API。 10.1 Web服務(wù)概述服務(wù)概述Web服務(wù)服務(wù)(Web Services)是一個(gè)在網(wǎng)絡(luò)或)是一個(gè)在網(wǎng)

2、絡(luò)或Internet上訪上訪問(wèn)應(yīng)用程序和組件的新方法,是一種構(gòu)建新的問(wèn)應(yīng)用程序和組件的新方法,是一種構(gòu)建新的Web應(yīng)用程序應(yīng)用程序的普通模型,并能在所有支持的普通模型,并能在所有支持Internet通訊的操作系統(tǒng)上實(shí)通訊的操作系統(tǒng)上實(shí)施運(yùn)行。施運(yùn)行。一個(gè)一個(gè)Web服務(wù)服務(wù)就是一個(gè)應(yīng)用就是一個(gè)應(yīng)用Web協(xié)議的可編程的應(yīng)用程協(xié)議的可編程的應(yīng)用程序邏輯。序邏輯。 例如,你想創(chuàng)建一個(gè)例如,你想創(chuàng)建一個(gè)Web服務(wù)服務(wù) ,它的作用是返回當(dāng)前的,它的作用是返回當(dāng)前的天氣情況。那么你可已建立一個(gè)天氣情況。那么你可已建立一個(gè)ASP頁(yè)面,它接受郵政編碼頁(yè)面,它接受郵政編碼作為查詢字符串,然后返回一個(gè)由逗號(hào)隔開(kāi)的字

3、符串,包含作為查詢字符串,然后返回一個(gè)由逗號(hào)隔開(kāi)的字符串,包含了當(dāng)前的氣溫和天氣。了當(dāng)前的氣溫和天氣。要調(diào)用這個(gè)要調(diào)用這個(gè)ASP頁(yè)面,客戶端需要發(fā)送下面的這個(gè)頁(yè)面,客戶端需要發(fā)送下面的這個(gè)HTTP GET請(qǐng)求:請(qǐng)求:http:/ 返回的數(shù)據(jù)就應(yīng)該是這樣:返回的數(shù)據(jù)就應(yīng)該是這樣: 21,晴,晴 (以逗號(hào)隔開(kāi)的(以逗號(hào)隔開(kāi)的“氣溫,天氣氣溫,天氣”) 這個(gè)這個(gè)ASP頁(yè)面就應(yīng)該可以算作是頁(yè)面就應(yīng)該可以算作是Web服務(wù)了。因?yàn)樗?wù)了。因?yàn)樗谟贖TTP GET請(qǐng)求,暴露出了一個(gè)可以通過(guò)請(qǐng)求,暴露出了一個(gè)可以通過(guò)Web調(diào)用的調(diào)用的API。當(dāng)然,當(dāng)然,Web服務(wù)還有更多的東西。服務(wù)還有更多的東西。

4、10.1.1 Web服務(wù)的特點(diǎn)服務(wù)的特點(diǎn)Web服務(wù)具有以下特點(diǎn)如下:服務(wù)具有以下特點(diǎn)如下:n Web服務(wù)是應(yīng)用程序組件。服務(wù)是應(yīng)用程序組件。n Web服務(wù)使用開(kāi)放協(xié)議進(jìn)行通信。服務(wù)使用開(kāi)放協(xié)議進(jìn)行通信。n Web服務(wù)是獨(dú)立的并可自我描述。服務(wù)是獨(dú)立的并可自我描述。n Web服務(wù)可通過(guò)使用服務(wù)可通過(guò)使用UDDI來(lái)發(fā)現(xiàn)。來(lái)發(fā)現(xiàn)。n Web服務(wù)可被其他應(yīng)用程序使用。服務(wù)可被其他應(yīng)用程序使用。n XML是是Web服務(wù)的基礎(chǔ)。服務(wù)的基礎(chǔ)。10.1.2 Web服務(wù)的體系結(jié)構(gòu)服務(wù)的體系結(jié)構(gòu)Web服務(wù)體系結(jié)構(gòu)包括服務(wù)體系結(jié)構(gòu)包括3種組件:種組件:l 服務(wù)提供者:服務(wù)提供者:是服務(wù)的擁有者,它為其他用戶或服務(wù)提

5、是服務(wù)的擁有者,它為其他用戶或服務(wù)提供服務(wù)功能。服務(wù)提供者先要向服務(wù)注冊(cè)中心注冊(cè)自已供服務(wù)功能。服務(wù)提供者先要向服務(wù)注冊(cè)中心注冊(cè)自已的服務(wù)描述和訪問(wèn)接口(發(fā)布操作)。的服務(wù)描述和訪問(wèn)接口(發(fā)布操作)。l 服務(wù)注冊(cè)中心:服務(wù)注冊(cè)中心:把服務(wù)提供者和服務(wù)請(qǐng)求者綁定在一起,把服務(wù)提供者和服務(wù)請(qǐng)求者綁定在一起,提供服務(wù)發(fā)布和查找功能。提供服務(wù)發(fā)布和查找功能。l 服務(wù)請(qǐng)求者:服務(wù)請(qǐng)求者:是是Web服務(wù)功能的使用者,它先向服務(wù)注服務(wù)功能的使用者,它先向服務(wù)注冊(cè)中心查找所需要的服務(wù),服務(wù)注冊(cè)中心根據(jù)服務(wù)請(qǐng)求冊(cè)中心查找所需要的服務(wù),服務(wù)注冊(cè)中心根據(jù)服務(wù)請(qǐng)求者的請(qǐng)求把相關(guān)的者的請(qǐng)求把相關(guān)的Web服務(wù)和服務(wù)請(qǐng)求者

6、進(jìn)行綁定,這服務(wù)和服務(wù)請(qǐng)求者進(jìn)行綁定,這樣服務(wù)請(qǐng)求者就可以從服務(wù)提供者那兒獲取需要的服務(wù)。樣服務(wù)請(qǐng)求者就可以從服務(wù)提供者那兒獲取需要的服務(wù)。Web服務(wù)體系結(jié)構(gòu)包括服務(wù)體系結(jié)構(gòu)包括3種操作:種操作:l 發(fā)布發(fā)布:服務(wù)提供者向服務(wù)注冊(cè)中心發(fā)布相關(guān)服務(wù)的注冊(cè)。:服務(wù)提供者向服務(wù)注冊(cè)中心發(fā)布相關(guān)服務(wù)的注冊(cè)。l 發(fā)現(xiàn)發(fā)現(xiàn):由服務(wù)請(qǐng)求者向服務(wù)注冊(cè)中心執(zhí)行:由服務(wù)請(qǐng)求者向服務(wù)注冊(cè)中心執(zhí)行find操作,服操作,服務(wù)請(qǐng)求者描述要找的服務(wù),服務(wù)注冊(cè)中心分發(fā)匹配的結(jié)務(wù)請(qǐng)求者描述要找的服務(wù),服務(wù)注冊(cè)中心分發(fā)匹配的結(jié)果;果;l 綁定綁定:在服務(wù)請(qǐng)求者和服務(wù)提供者之間綁定,這兩部分:在服務(wù)請(qǐng)求者和服務(wù)提供者之間綁定,這兩

7、部分協(xié)商以使服務(wù)請(qǐng)求者可以訪問(wèn)和調(diào)用服務(wù)提供者的服務(wù)。協(xié)商以使服務(wù)請(qǐng)求者可以訪問(wèn)和調(diào)用服務(wù)提供者的服務(wù)。10.2 創(chuàng)建和使用創(chuàng)建和使用Web服務(wù)服務(wù)10.2.1 創(chuàng)建創(chuàng)建ASP.NET Web服務(wù)服務(wù)創(chuàng)建創(chuàng)建ASP.NET Web服務(wù)的步驟如下:服務(wù)的步驟如下:(1)采用第)采用第1章介紹的方法新建一個(gè)虛擬目錄章介紹的方法新建一個(gè)虛擬目錄Service,對(duì),對(duì)應(yīng)的物理目錄為應(yīng)的物理目錄為H:WebService。在。在“Service屬性屬性”對(duì)話框的對(duì)話框的“目錄安全性目錄安全性”選項(xiàng)卡中單擊選項(xiàng)卡中單擊“編輯編輯”按鈕,勺選按鈕,勺選“集成集成Windows身份驗(yàn)證身份驗(yàn)證”。(2)啟動(dòng))

8、啟動(dòng)Visual Studio.NET,選擇,選擇“文件文件”|“新建新建”|“網(wǎng)網(wǎng)站站”菜單命令,選擇菜單命令,選擇“ASP.NET Web服務(wù)服務(wù)”模板,如下圖所示。模板,如下圖所示。 (3)單擊)單擊“瀏覽瀏覽”按鈕,打開(kāi)按鈕,打開(kāi)“選擇位置選擇位置”對(duì)話框,選對(duì)話框,選擇擇“Service”,如下圖所示,單擊,如下圖所示,單擊“打開(kāi)打開(kāi)”按鈕。按鈕。(4)系統(tǒng)自動(dòng)生成一個(gè))系統(tǒng)自動(dòng)生成一個(gè)Service.cs和和Service.asmx兩個(gè)文件。兩個(gè)文件。Service.asmx文件包含以下代碼:文件包含以下代碼:其中為其中為WebService指令,指定相關(guān)屬性設(shè)置,屬性含義與指令,

9、指定相關(guān)屬性設(shè)置,屬性含義與Page指令的屬性類似。指令的屬性類似。Service.cs文件位于文件位于App_Code文件來(lái)中,其初始代碼如下:文件來(lái)中,其初始代碼如下:using System;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;WebService(Namespace = /)WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)public class Service

10、: System.Web.Services.WebService public Service () /如果使用設(shè)計(jì)的組件,請(qǐng)取消注釋以下行如果使用設(shè)計(jì)的組件,請(qǐng)取消注釋以下行 /InitializeComponent(); WebMethod public string HelloWorld() return Hello World; 單擊單擊按鈕運(yùn)行本服務(wù)按鈕運(yùn)行本服務(wù) 單擊單擊HelloWorld超鏈接超鏈接 單擊單擊“調(diào)用調(diào)用”按按鈕鈕 【例【例10.1】設(shè)計(jì)一個(gè)實(shí)現(xiàn)兩個(gè)整數(shù)相加的服務(wù)。設(shè)計(jì)一個(gè)實(shí)現(xiàn)兩個(gè)整數(shù)相加的服務(wù)。解:解:其設(shè)計(jì)步驟如下:其設(shè)計(jì)步驟如下:(1)打開(kāi))打開(kāi)WebSer

11、vice網(wǎng)站網(wǎng)站Service.cs文件。文件。(2)在)在Service類中添加如下代碼:類中添加如下代碼:WebMethod public int add(int a, int b) return a + b; WebMethod表示該方法可以由表示該方法可以由Web調(diào)用,其方法的調(diào)用,其方法的設(shè)計(jì)與普通類的方法設(shè)計(jì)相同。設(shè)計(jì)與普通類的方法設(shè)計(jì)相同。10.2.2 使用使用ASP.NET Web服務(wù)服務(wù)Web服務(wù)的主要作用就是為了供客戶端程序調(diào)用。服務(wù)的主要作用就是為了供客戶端程序調(diào)用。在訪問(wèn)在訪問(wèn)Web服務(wù)時(shí),服務(wù)時(shí),.NET框架等完成了大部分工作,框架等完成了大部分工作,用戶只需要在代碼

12、中調(diào)用代理類的相應(yīng)方法即可。用戶只需要在代碼中調(diào)用代理類的相應(yīng)方法即可?!纠纠?0.2】設(shè)計(jì)一個(gè)使用設(shè)計(jì)一個(gè)使用add服務(wù)網(wǎng)頁(yè)服務(wù)網(wǎng)頁(yè)WebForm10-1。解:解:其設(shè)計(jì)步驟如下:其設(shè)計(jì)步驟如下:(1)打開(kāi))打開(kāi)Myaspnet網(wǎng)站,在網(wǎng)站,在ch10文件夾中添加一個(gè)名稱為文件夾中添加一個(gè)名稱為WebForm10-1的空網(wǎng)頁(yè)。的空網(wǎng)頁(yè)。(2)在)在“解決方案資源管理器解決方案資源管理器”窗口中右擊窗口中右擊“http:/localhost/Myaspnet/”,在出現(xiàn)的快捷菜單中選擇,在出現(xiàn)的快捷菜單中選擇“添加添加Web引用引用”命令,打開(kāi)命令,打開(kāi)“添加添加Web引用引用”對(duì)話框,如下

13、圖所示。對(duì)話框,如下圖所示。單擊單擊“本地計(jì)算機(jī)上的本地計(jì)算機(jī)上的Web服務(wù)服務(wù)”選項(xiàng),出現(xiàn)如下圖所示的選項(xiàng),出現(xiàn)如下圖所示的“本地計(jì)算機(jī)上的本地計(jì)算機(jī)上的Web服務(wù)服務(wù)”窗口。窗口。單擊單擊Service選項(xiàng),打開(kāi)如下圖所示的選項(xiàng),打開(kāi)如下圖所示的Service窗口,單擊窗口,單擊“添加引用添加引用”按鈕(這里保持默認(rèn)的按鈕(這里保持默認(rèn)的Web引用名為引用名為localhost)。)。(3)打開(kāi))打開(kāi)Web.Config文件中自動(dòng)添加以下代碼:文件中自動(dòng)添加以下代碼:表示設(shè)定了代理類表示設(shè)定了代理類localhost所引用的所引用的Web服務(wù)的服務(wù)的URL。在在在在“解決方案資源管理器解決

14、方案資源管理器”窗口中看到新建了一個(gè)窗口中看到新建了一個(gè)App_WebReferences文件夾,其中包含文件夾,其中包含localhost類的子文件類的子文件夾。夾。(4)設(shè)計(jì))設(shè)計(jì)WebForm10-1的界面如圖的界面如圖10.12所示,其中包含所示,其中包含一個(gè)一個(gè)22的表格,有兩個(gè)文本框(的表格,有兩個(gè)文本框(TextBox1和和TextBox2),),另有一個(gè)命令按鈕另有一個(gè)命令按鈕Button1和一個(gè)標(biāo)簽和一個(gè)標(biāo)簽Label1,指定其,指定其StyleSheetTheme屬性為屬性為Blue。在該網(wǎng)頁(yè)上設(shè)計(jì)如下事件過(guò)程:。在該網(wǎng)頁(yè)上設(shè)計(jì)如下事件過(guò)程:protected void B

15、utton1_Click(object sender, EventArgs e)int m, n; m = int.Parse(TextBox1.Text); n = int.Parse(TextBox2.Text); localhost.Service myservice = new localhost.Service(); Label1.Text = 調(diào)用結(jié)果調(diào)用結(jié)果: + myservice.add(m, n).ToString(); 網(wǎng)頁(yè)設(shè)計(jì)界面網(wǎng)頁(yè)設(shè)計(jì)界面網(wǎng)頁(yè)運(yùn)行界面網(wǎng)頁(yè)運(yùn)行界面單擊工具欄中的單擊工具欄中的按鈕運(yùn)行本網(wǎng)頁(yè),輸入按鈕運(yùn)行本網(wǎng)頁(yè),輸入2和和6,單擊,單擊“相加相加”命令按

16、鈕,其運(yùn)行界面如圖命令按鈕,其運(yùn)行界面如圖10.13所示。所示。10.3 通過(guò)通過(guò)Web服務(wù)傳輸服務(wù)傳輸DataSet數(shù)據(jù)集數(shù)據(jù)集DataSet對(duì)象是采用斷開(kāi)式設(shè)計(jì)的,其部分目的是便于對(duì)象是采用斷開(kāi)式設(shè)計(jì)的,其部分目的是便于Internet來(lái)傳輸數(shù)據(jù)。來(lái)傳輸數(shù)據(jù)。可以將可以將DataSet指定為指定為Web服務(wù)的輸入或輸出。服務(wù)的輸入或輸出。Web服務(wù)服務(wù)和客戶端之間將和客戶端之間將DataSet內(nèi)容以流的形式來(lái)回傳遞。內(nèi)容以流的形式來(lái)回傳遞。 【例【例10.3】設(shè)計(jì)一個(gè)使用】設(shè)計(jì)一個(gè)使用Web服務(wù)顯示服務(wù)顯示student表記錄表記錄的網(wǎng)頁(yè)的網(wǎng)頁(yè)WebForm12-2。解:其設(shè)計(jì)步驟如下:解

17、:其設(shè)計(jì)步驟如下: (1)打開(kāi)前面建立的)打開(kāi)前面建立的Service網(wǎng)站,將網(wǎng)站,將Stud.mdb文件復(fù)制文件復(fù)制到該網(wǎng)站的到該網(wǎng)站的App_Data文件夾中。雙擊打開(kāi)文件夾中。雙擊打開(kāi)Service.cs文件,文件,在引用部分添加以下代碼:在引用部分添加以下代碼: using System.Data; using System.Data.SqlClient;在在Service類中添加以下類中添加以下Web服務(wù):服務(wù):WebMethodpublic DataSet getdata() string mystr, mysql;mystr = Data Source=localhost;Ini

18、tial Catalog=Stud; +Integrated Security=False;User Id=sa;Password=123456;SqlConnection myconn = new SqlConnection();myconn.ConnectionString = mystr;myconn.Open();mysql = SELECT * FROM student;SqlDataAdapter myda = new SqlDataAdapter(mysql, myconn);DataSet myds = new DataSet();myda.Fill(myds, student);/將將student表填充到表填充到myds中中myconn.Close();return myds;(2)打開(kāi))打開(kāi)Myaspnet網(wǎng)站,在網(wǎng)站,在ch10文件夾中添加一個(gè)名文件夾中添加一個(gè)名稱為稱為WebForm10-2的空網(wǎng)頁(yè)。在網(wǎng)頁(yè)中拖放一個(gè)的空網(wǎng)頁(yè)。在網(wǎng)頁(yè)中拖放一個(gè)GridView控件控件GridView1,設(shè)置其自動(dòng)套用格式,不設(shè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論