ASP.NET Web Service (1)
發表于:2007-06-30來源:作者:點擊數:
標簽:
現在Internet正在不斷地發展著,在互聯網應用剛開始的時候,我們瀏覽的網頁只是靜態的,不可交互的。而現在隨著技術的日益發展,將提供給網頁瀏覽者一個可編程的Web 站點。這些站點將在組織、應用、服務、驅動上更加緊密的結合在一起,這些站點將通過一些應
現在Internet正在不斷地發展著,在互聯網應用剛開始的時候,我們瀏覽的網頁只是靜態的,不可交互的。而現在隨著技術的日益發展,將提供給網頁瀏覽者一個可編程的Web 站點。這些站點將在組織、應用、服務、驅動上更加緊密的結合在一起,這些站點將通過一些應用軟件直接連接到另一個Web 站點,這些可編程的Web 站點相比傳統的web站點來說,將變得更加能重復使用,也更加智能化!
.net平臺給我們提供了一種運行環境,即公用語言運行環境(C
LR,Common Language Runtime)。對 CLR來說,它提供了一種內置機制來創建一個可編程的站點,、對于Web 程序
開發者和
VB 程序員來說,這將是一致、熟悉的。這種模型是可以重復使用,也可以再擴展。 它包含了開放的Internet標準(HTTP, XML,
SOAP, SDL)。以便它能被網頁瀏覽者訪問。
ASP.NET 使用.asmx 文件來對Web Services的支持。.asmx 文件和.aspx文件一樣都屬于文本文件。它包含在.aspx文件之中,成為ASP.NET應用程序的一部分。
下面我們將舉一個簡單的例子來介紹.asmx文件,我們還是從"Hello,World"這個經典的例子說起,代碼如下:
<!-- 文件名:WebService\sisam.asmx -->
<%@ WebService Language="VB" Class="HelloWorld" %>
Imports System.Web.Services
Public Class HelloWorld :Inherits WebService
Public Function <WebMethod( )> SayHelloWorld( ) As String
Return("Hello World")
End Function
End Class
說明:
1.編碼最開始必須進行WebService聲明,從而定義這個文件為一個Web Service。而且,在同一行中設置好編程語言的類型。
2.然后,引入名字空間System.Web.Services。注意,這個名字空間屬于最基本的元素,必須要包含它。
3.接著,聲明service中的功能模塊,也就是類模塊,這里的類名叫HelloWorld。這個類來源于基類WebService,而且應該是public類型。
4.最后,定義service的可訪問方法。在表示方法的符號前面,要設置好自定義屬性。對應于C#語言,屬性值就是[WebMethod];對應于VB,就是。如果沒有設置這個屬性,那么這個方法就不能從service中訪問。一個局部應用可以使用任何的public類型的類,但是只有具備[WebMethod]的類才可以通過SOAP被遠程地訪問。
當對service的請求發生時,.asmx文件將自動地被ASP.NET運行環境所編譯。隨后的請求就可以由緩沖的預編譯類型對象執行。
為了
測試編寫好的代碼,我們需用一個支持ASP.NET的Web
服務器。假設這個Web服務器的名稱叫做server1,其上有一個虛擬目錄test。請跟隨下面步驟開始測試:
1.將代碼保存為HelloWorld.asmx
2.放到Web服務器Foo的虛擬目錄Bar下
3.打開Internet Explorer5,在地址欄輸入http://server1/test/HelloWorld.asmx
這時,我們將看到關于這個Web Service的公用方法-也就是那些標記為WebMethod屬性的字符,并得知調用這些方法可以使用的協議,比如SOAP或者HTTP GET。
在Internet Explorer的地址欄中輸入http://Foo/Bar/HelloWorld.asmx?SDL后,將產生基于服務描述語言(Service Description Language :SDL)語法的具備相同信息的XML文件。這個SDL文件非常重要,客戶端就是使用它來訪問service。
原文轉自:http://www.kjueaiud.com