久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

使?用?C?#?創(chuàng)?建?w?e?b?s?e?r?v?i?c?e?及?三?種?調?用?方?式

 goodwangLib 2014-09-13
使用C#創(chuàng)建webservice及三種調用方式


微軟.NET戰(zhàn)略的一個比較重要的部分就是webservice,利用webservice我們可以創(chuàng)建真正有效的分布式應用程序,。 
下面,,我們對webservice做一些說明,。 
假設A是客戶端,,B是webservice服務端,,用戶通過http協(xié)議向服務器發(fā)送soap請求,webservice返回客戶端XML格式的數據,。 
現(xiàn)在我們看一看創(chuàng)建一個webservice的大致過程: 
服務端的webservice是必須要建的,。中間的soap,xml我們不用去關心,,在客戶端這邊,比較重要的是如何從webservice取得對象,?答案是用的是proxy對象,。客戶端由代理對象(proxy)負責與webservice的通信,。所以在客戶端使用webservice,完全和使用一個本地對象是一樣的,。 


我們現(xiàn)在以一個簡單的實例來說明,。 
打開vs.net,新建工程(asp.net  web服務),在位置中鍵入http://localhost/webserver,其中webserver就是工程的名字,。確定后,,出現(xiàn)一個Service1.asmx.cx,雙擊,出現(xiàn)代碼窗口,, 
using  System; 
using  System.Collections; 
using  System.ComponentModel; 
using  System.Data; 
using  System.Diagnostics; 
using  System.Web; 
using  System.Web.Services; 


namespace  webserver 

///  <summary> 
///  Service1  的摘要說明,。 
///  </summary> 
(1) 
public  class  Service1  :  System.Web.Services.WebService 

public  Service1() 

//CODEGEN:該調用是  ASP.NET  Web  服務設計器所必需的 
InitializeComponent(); 



#region  Component  Designer  generated  code 

/Web  服務設計器所必需的 
private  IContainer  components  =  null; 


///  <summary> 
///  設計器支持所需的方法  -  不要使用代碼編輯器修改 
///  此方法的內容。 
///  </summary> 
private  void  InitializeComponent() 




///  <summary> 
///  清理所有正在使用的資源,。 
///  </summary> 
protected  override  void  Dispose(  bool  disposing  ) 

if(disposing  &&  components  !=  null) 

components.Dispose(); 

base.Dispose(disposing); 



#endregion 


//  WEB  服務示例 
//  HelloWorld()  示例服務返回字符串  Hello  World 
//  若要生成,,請取消注釋下列行,然后保存并生成項目 
//  若要測試此  Web  服務,,請按  F5  鍵 


// [WebMethod] 
// public  string  HelloWorld() 
// { 
// return  "Hello  World"; 
// } 
}


下面在(1)處加入 
[WebService(Namespace="http://localhost/webserver/")] 
這是因為soap是基于http協(xié)議上的,,客戶端無法知道webservice位于那個服務器上。在實際應用中,,比如http://www.上放置這個webservice,,則Namespace改為http://www./webserver. 


下面我們給這個webservice添加一個方法。 
// [WebMethod] 
// public  string  HelloWorld() 
// { 
// return  "Hello  World"; 
// } 
微軟幫我們寫好了一個,,接著添加一個方法,。方法名稱叫show. 
[WebMethod] 
public  string  show(string  yourname) 

return  “http://www.”+”歡迎”+yourname; 

現(xiàn)在,就可以運行了,,按F5,點擊show,輸入你的名字,,然后點擊invote 
看到了吧。 
<?xml  version="1.0"  encoding="utf-8"  ?>   
    <string  xmlns="http:///">http://www.歡迎yyg</string>   


成功了,。打開bin目錄,,Vs.net已經將proxy做好了.webserver.dll. 


現(xiàn)在我們在不同的環(huán)境下測試: 
1. 打開vs.net,新建”windows應用程序”工程,命名為Client,增加按鈕,,文本框,。 
現(xiàn)在要用到代理了,右鍵單擊右邊的reference(引用),選擇”添加引用”,選擇瀏覽,,找到webserver目錄下的bin目錄下的webserver.dll 
再加入一個system.web.webservices的引用,,在列表中有。 
在form1.cs里,加入 
using  System.Web.Services; 
using  webserver; 


然后在 
private  System.Windows.Forms.Button  button1; 
private  System.Windows.Forms.TextBox  textBox1; 

后面,,插入 
private  webserver.service1  Client 
建立一個service1的實例,。雙擊按鈕,代碼如下: 
private  void  button1_Click(object  sender,  System.EventArgs  e) 

Client  =new  Service1(); 
string  name; 
name=Client.show("龍卷風.NET"); 
textBox1.Text=name; 

按F5,,運行工程,,點擊按鈕,文本框中顯示 
http://www.歡迎龍卷風.NET 




2. Asp.NET  web窗口的測試 
方法與上面的一模一樣,,添加引用,,建立service1的實例 
在此不在細說。 
3.在VB中測試 
這個就要相對來說復雜一些 
首先在vb中建立一個”標準EXE”的工程,。添加引用:Microsoft  Soap  Type  library,。注意:如果沒有安裝Microsoft  Soap  Toolkit,是沒有這個類型庫的。 
可以在http://www.中下載,。 
添加一個text 
Private  Sub  Form_Load() 
        Text1.Text  =  add() 
End  Sub 


Public  Function  Add()  As  String 
Dim  objSoapClient  As  New  SoapClient 
        objSoapClient.ClientProperty("ServerHTTPRequest")  =  True 
Call  objSoapClient.mssoapinit("http://localhost/webserver/service1.asmx?WSDL",  "Service1",  "Service1Soap") 
這句也可以 
objSoapClient.mssoapinit("http://localhost/webserver/service1.asmx?WSDL") 


        Add  =  objSoapClient.Show("龍卷風.NET") 
End  Function 

調試成功需要注意的: 
運行服務端webservice的程序,,出現(xiàn)下面時 
支持下列操作。有關正式定義,,請查看服務說明,。 
點擊服務說明,會得到完整的wsdl文件 
http://localhost/webserver/Service1.asmx?WSDL 
我們就要使用這個文件,,其中包含了我們定義的方法等等,。 


Mssoapinit(bstrWSDLFile  as  string,[bStrServiceName  as  string  ],[bStrport  as  string  ]  ,[bstrWSMLDile  as  string])的用法: 
其中第二個,第三個參數在wsdl文件中可以找到,。也可以省略,。 




后續(xù):還有從COM中生成wsdl文件等等,我會陸續(xù)推出的,。 

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多