.NET中使用WebService,以及和一般處理程序、類庫的區別


 

首先我們來看一下如何創建Web Service

首先在解決方案中新建項,選擇ASP.NETWeb應用程序

然后選擇一個空的項目就可以,單擊確定

項目建完之后,在項目上右鍵-->添加-->新建項,選擇 Web服務(ASMX),添加

如果想要添加新的函數,必須在函數上方打上WebMethod標簽

接下來就是調用,首先在我們項目的引用中,右鍵-->添加服務引用  

單擊發現

選擇要添加的asmx文件,下面的命名空間也可以修改,然后點擊確定,如果出現下面的彈框,添加失敗的話,生成-->重新生成解決方案 然后在次添加就好了

添加完成之后,該項目中會出現一個ConnectedService,打開之后會出現引用的Service服務

然后在程序中就可以使用了,使用之前先添加命名空間,using  項目名稱.剛才設置的命名空間,例如:

調用

//使用using釋放資源
//實例化DateTimeServiceSoapClient對象,該對象的類型是WebService中的類型加上SoapClient
using (DateTimeServiceSoapClient client = new DateTimeServiceSoapClient()) {
    //打開
    client.Open();
    //調用方法,接收返回值
    DateTime dt = client.GetDateTimeNow();
    //顯示
    Console.WriteLine(dt);
}

如果更新WebService中的函數的主體,重新生成之后,調用的話是不需要做出任何改變的

如果WebService中添加了新的函數,先重新生成解決方案,然后要右鍵服務引用-->更新服務引用即可

WebService的用法給我的第一感覺就是和類庫並沒有太大的區別,都是添加引用,調用方法。可是實際上內部的原理確是天差地別。

WebService使用的是soap協議進行通訊,本質上還是使用http請求進行通訊,通過http請求發送soap格式的xml文件,服務器會對xml文件進行解析,然后服務器端返回的也是soap格式的xml文件,然后客戶端進行解析。

然后我們來看一下沒有被解析過的HTTP POST協議返回的xml文件是什么樣子的,右鍵asmx文件,單擊在瀏覽器中進行查看

點開我們剛才寫的這個方法

點擊調用

這個就是HTTP POST請求返回的格式

而添加普通引用的話,實際上會在bin目錄下將所引用程序的dll文件復制過來,如果項目不在同一個解決方案,被引用的項目有改動的話,還需要把dll文件再次復制一份放到bin目錄下,是非常麻煩的。

WebService從執行的流程上來看,和ajax+一般處理程序差不多,都是請求然后處理請求。就我個人而言,WebService用於后端操作較為方便,因為操作都是封裝好的,不需要自己創建HttpWebRequest對象發送請求,也不需要對返回的xml文件進行解碼;而一般處理程序和ajax使用,用來處理前台發送來的數據更為方便。個人見解,如果大家有其他想法的話,可以多多發言

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM