熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET構造XML Web服務

2013-11-13 09:40:56  來源: .NET編程 

  使用ASPNET構造一個簡單的XML Web服務是相對容易的然而XML Web服務的真正的強大的功能只有等你研究了基礎結構以後才能領悟XML Web服務是建立在NET框架和公共語言運行時間基礎上的一個XML Web服務可以利用這些技術例如ASPNET支持的性能狀態管理和驗證全都可被用來構造XML Web服務

  XML Web服務的基礎結構是構建來符合象SOAPXML和WSDL這樣的行業標准並且它允許其他的平台的客戶端與XML Web服務互操作只要一個客戶端可以發送符合標准的SOAP消息依據格式化的服務描述那麼這個客戶端可以調用一個使用ASPNET創建的XML Web服務(不管客戶端存在於何種平台)

  當你使用ASPNET構造一個XML Web服務時它自動支持客戶端使用SOAPHTTPGET和HTTPPOST協議通訊即使HTTPGET和HTTPPOST支持使用URL編碼的變量名/變量值對來傳送消息支持這兩個協議的數據類型也沒有支持SOAP協議的數據類型豐富在SOAP中使用XML把數據傳送到XML Web服務或從XML Web服務取回消息你可以使用支持豐富的數據類型集的XSD模式定義復雜的數據類型使用ASPNET構造一個XML Web服務的開發者不必明確地定義復雜的數據類型他們可以只構造一個管理類ASPNET處理定義到一個XSD模式的映射類和到XML數據的映射對象實例以便通過網絡傳輸

  重要的是要注意XML Web服務並不能取代DCOM我們應該說XML Web服務是跨越使用行業標准的平台通信的一種消息傳遞基礎結構

  因為ASPNET提供了為XML Web服務內部工作的基礎結構開發者可以集中精力來實現他們的特定的XML Web服務的功能使用ASPNET開發一個XML Web服務從下面三步開始

   創建一個帶有asmx擴展名的文件

   在這個文件裡面使用一條指令聲明XML Web服務

   定義組成XML Web服務功能的XML Web服務方法

  XML Web服務是一個強大的技術用於提供可通過因特網變成訪問的服務下面的建議將幫助你創建高效的XML Web服務

  XML Web服務既支持同步的又支持異步的客戶端和存放XML Web服務的服務器之間的通信在同步通信情況下客戶端發送一個對服務的請求到服務主機服務器上等待響應這防止客戶端在等待結果的時候執行其它的操作然而異步通信導致客戶端在等待相應的時候繼續處理其它的任務客戶端在可用的時候響應服務請求的結果

  當你使用Web服務描述語言工具(Wsdlexe)來創建你的代理類的時候它產生類中的方法的標准的同步版本和異步版本異步版本由兩個方法組成稱為Begin和EndBegin方法用於初始化XML Web服務而End方法取得結果

  使用異步通信能夠改善系統使用率和避免客戶端在它等待XML Web服務結果的時候的延遲

  下面的代碼示例顯示如何從一個客戶應用程序產生一個到XML Web服務

  <C#%>%@PageLanguage=C#%>

  <Net%>%@ImportNamespace=SystemNet%>

  <html>

  <scriptlanguagescriptlanguage=C#runat=server>

  voidEnterBtn_Click(ObjectSrcEventArgsE)

  {

  MyMathMathmath=newMyMathMath();

  //CalltoAddXMLWebservicemethodasynchronously

  //andthenwaitforittocomplete  IAsyncResultresult=  mathBeginAdd(ConvertToInt(NumText)

  ConvertToInt(NumText)  null  null);

  //Waitforasynchronouscalltocomplete

  resultAsyncWaitHandleWaitOne();

  //CompletetheasynchronouscalltoAddXMLWebservicemethod

  floattotal=mathEndAdd(result);

  //DisplayresultsinaLabelcontrol

  TotalText=Total:+totalToString();

  }

  </script>

  <body>

  <formactionformaction=MathClientaspxrunat=server>

  <fontfacefontface=Verdana>

  Enterthetwonumbersyouwanttoaddandthenpress  theTotalbutton

  <p> Number:  <asp:textboxidasp:textboxid=Num runat=server/> +  Number:

  <asp:textboxidasp:textboxid=Num runat=server/> =  <asp:buttonidasp:buttonid=Total_Button text=Total OnClick=EnterBtn_Click runat=server/>

  <p>

  <asp:labelidasp:labelid=Totalrunat=server/>

  </font>

  </form>

  </body>

  </html>

  [VisualBasic]

  <%@PageLanguage=VB%> <%@ImportNamespace=SystemNet%>

  <html>

  <scriptlanguagescriptlanguage=VBrunat=server>

  SubEnterBtn_Click(SrcAsObjectEAsEventArgs)

  DimmathAsNewMyMathMath()

  CalltoAddXMLWebservicemethodasynchronously 

  andthenwaitforittocomplete  DimresultAsIAsyncResult=_ mathBeginAdd(ConvertToInt(NumText)

  _  ConvertToInt(NumText)

  _  Nothing_  Nothing)

  Waitforasynchronouscalltocomplete  resultAsyncWaitHandleWaitOne() 

  CompletetheasynchronouscalltoAddXMLWebservicemethod  DimaddtotalAsSingle=mathEndAdd(result) 

  DisplayresultsinaLabelcontrol

  TotalText=Total:&addtotalToString()

  EndSub

  </script>

  <body>

  <formactionformaction=MathClientaspxrunat=server>

  <fontfacefontface=Verdana>

  Enterthetwonumbersyouwanttoaddandthenpress  theTotalbutton

  <p>

  Number:  <asp:textboxidasp:textboxid=Num runat=server/> +  Number:

  <asp:textboxidasp:textboxid=Num runat=server/> =  <asp:buttonidasp:buttonid=Total_Button text=Total OnClick=EnterBtn_Click runat=server/>

  <p>

  <asp:labelidasp:labelid=Totalrunat=server/>

  </font>

  </form>

  </body>

  </html>

  以上介紹ASPNET構造XML Web服務


From:http://tw.wingwit.com/Article/program/net/201311/11316.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.