監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關閉

一步一步開始Web Service

申請免費試用、咨詢電話:400-8352-114

AMTeam.org

一步一步開始Web Service

一看題目知道這是有關Web Service的,不過我不想再寫什么理論的東東,只想通過一個例子實踐一下,但愿你也一樣,那么這篇文章對你會有幫助。

整個例子包括了所有的Web Service 的過程,我計劃這樣做:

1. 建立一個ASP+ Web服務

2. 完成.asmx文件,然后再瀏覽器中測試。

3. 創(chuàng)建一個這個Web Service 的客戶。

4. 客戶得到這個Service

我的遇到的問題是在第4步,客戶端始終沒有得到Web Service的位置,盡管它們都在同一機器上但彼此不認識。然后我用VS。NET 沒有任何問題,所有的過程ZIP包中幾乎都有,而且我還想試一下Net程序的分發(fā),VS這方面也很不錯。

Zip包中的WebServiceAll.zip中有整個Project的文件和代碼。

不過最好安裝了VS.NET beta 2 ,最少你要安裝Framework SDK beta 2 。

具體說:

1. 在VS.NET 中建立一個ASP WEB Service的項目,然后在產生的 .asmx 的類中實現(xiàn)你的功能也就是Service,我寫了兩個簡單的函數(shù)一個是HelloWorld 函數(shù)返回一個“HelloWorld”的字符串。另一個是一個Add操作返回兩個數(shù)的和。好了后把它設置成默認頁,F(xiàn)5。如果沒有錯誤IE應當自動啟動了。和普通的語法沒有差別,唯一是在函數(shù)前面加一個WebMethod的標記

VB:public Function Add( a as integer , b as integer ) as integer : Add= a+b ; end functi

C#:[WebMethod] public void int Add( int a, int b ) { return a+b ; }

VS。NET會幫你生成一個.asmx.vb 的文件放你的代碼,如果是手工的話直接在.asmx中寫就可以了。

2. 你可以看到一個很格式的頁面顯示出你剛剛的兩個函數(shù)(或說Service)甚至你可以執(zhí)行它,比如看看輸出的“HelloWord”和做一個3+2得到5的結果,這樣Web Service建立成功了。

3. 你需要建立一個Web Service的客戶,讓它得到你提供的這些服務獲得”HelloWord”和相加的結果。所有你需要產生一個SDL文件,它和IDL相似,IDL編譯會形成一個類型庫,使VB的開發(fā)中可以前期綁定,然后VB,InterDev開發(fā)環(huán)境中可以顯示智能化的幫助。


有三種方式可以產生:手工自己寫,使用dotnet工具,由.asmx文件生成。自動的生成的可以用于觀看和測試不能保存下來,如果要保存你需要使用一個Framework SDK 的工具 disco.exe 它在C:Program FilesMicrosoft.NETFrameworkSDKBin 目錄中你可以先在IE中這樣試 :

http://localhost/WebService1/Service1.asmx?WSDL ,如果成功會有一個XML顯示在IE中,這也是自動方式了。然后你在dos提示符下 disco http://localhost/WebService1/Service1.asmx?WSDL 意思是你想保留這個文件,執(zhí)行成功后你可以看到這個 .wsdl的文件。

4. 然后有些象Java也象VB,容易理解了,那就是你要生成一個代理類,然后在客戶端調用這個類中的方法,也就是Services。 這時你需要用Framework SDK中的另一個工具 wsdl.exe 用它生成一個.cs .vb 或 .js的文件,編譯這個文件生成一個DLL,就是所謂的代理類了。然后就可以在dotnet的網(wǎng)頁,GUI窗體,web窗體或控制臺程序中調用HelloWorld 和Add 函數(shù)就完成全部了。具體的語句:

wsdl /out::myWebService1.cs http://localhost/WebService1/Service1.asmx

成功后你可以看到這個CS文件生成。

5. 然后編譯這個類

csc /out:myWebService1.dll /t:library /r:System.XML.dll /r:System.Web.Services.dll myWebService1.cs

如果成功DLL也生成,現(xiàn)在就差寫一個表現(xiàn)層也調用這個Service了。我手工方式就阻在這個表現(xiàn)層上,我想是我生成的.wsdl沒有被用上,也就是找不到這個Services 。

4,5我是手工做的,不想再建一個Project去編譯myWebService1.cs了。Dotnet有個好處,組件只用編譯后自動注冊,不用象Com那樣還要 regsvr32 一下,而且目前Com組件和dotnet組件是完全不同的,也就是說在VB的Reference 和Oleview中你會失望的,看不到這個dotnet組件。

6. 然后就可以在你的應用中調用這個組件了,應用很簡單,大體都是:

dim obj as new Service1

dim retStr as string

dim retIntVal as string

retStr = obj.HelloWorld()

retIntVal = obj.Add( 300 , 500 )

這樣看來dotnet還是很有意思的,至少向你展現(xiàn)了一種不同的東西,我想用過Com或Com+的大俠們很容易想起這類似一種遠程或Internet方式的Com,以前的com有致命的弱點,無法穿透防火墻,現(xiàn)在這種方式不僅靈活而且協(xié)議更加標準。底層的它封裝和隱藏了SOAP和其它的網(wǎng)絡協(xié)議,中間靠XML來傳遞數(shù)據(jù)和信息。你只用專心在Service功能上。

想想新浪的新聞服務如果有這樣的Web Service接口,大家的網(wǎng)站上只有簡單幾句就可以有新聞顯示了。同樣股票站點可以為你提供股票信息,旅游航空公司提供旅游和航班信息。太多了,而且時時更新,我想以后會有一個Web Service的接口或門戶網(wǎng)站,它也會象Yahoo一樣成為眾所周知的入口。

一些資源:

Framework SDK beta 2

http://download.microsoft.com/download/VisualStudioNET/Trial/2.0/W982KMeXP/EN-US/setup.exe

Microsoft ASP.NET Premium Edition 如果裝VS.NET beta 2 前忘記裝IIS,那么裝完IIS再裝它可以不用重新安裝整個VS.NET beta 2

http://download.microsoft.com/download/VisualStudioNET/Trial/2/W982KMeXP/EN-US/setup.exe

SOAP Toolkit 2.0 SP2

http://download.microsoft.com/download/xml/soap/2.0/W98NT42KMe/EN-US/SoapToolkit20.exe

Programming .NET with C#

http://www.gotdotnet.com/featured_site/developmentor/assemblies2.pdf

XML Spy 4.0b2

http://www.xmlspy.com/download/beta/

Visual XSLT for VS.NET beta2

http://downloads.activestate.com/VisualXSLT/VisualXSLT-1.0.0-Beta3-1730.msi

MSDN Show : 介紹VS.NET Beta 2

http://a138.ms.a.microsoft.com/f/138/1611/2h/download.microsoft.com/download

/VisualStudioNET/Utility/15/WIN98MeXP/EN-US/Episode015.exe

不錯的C#編輯器,也可開發(fā)并且支持 Framework SDK beta 2 , 新版本還有動態(tài)函數(shù)幫助

http://www.c-point.com/download/csharped.zip

SOAP Extensions with Visual Basic .NET

http://msdn.microsoft.com/msdn-files/026/002/305/VBSoapEx.exe

發(fā)布:2007-03-25 10:25    編輯:泛普軟件 · xiaona    [打印此頁]    [關閉]
相關文章: