日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Web Reference和Service Reference的区别

發(fā)布時間:2023/12/10 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web Reference和Service Reference的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天因為項目需要使用服務(wù)引用,就按之前的經(jīng)驗添加上了,步驟如下:?
項目根目錄——引用——右鍵——添加服務(wù)引用——高級——添加Web引用——輸入接口的URL地址——回車(下方出現(xiàn)的就是接口的定義的方法)——修改Web引用名——添加引用。

按照上面的步驟就可以將引用添加到Web References文件夾下,這也是以往經(jīng)驗,但是具體使用時發(fā)現(xiàn)添加的是Web Reference并不能滿足項目的需要,這里需要用的是Service Reference。在這之前也查過很多文章,大多數(shù)都說是兩者沒有什么大的區(qū)別,主要是Service Reference適用的.net版本更高,而且可以使用WCF。那么兩者到底有什么區(qū)別呢?

一、Web Reference生成的代理可以被.net1.1或.net2.0的客戶端調(diào)用;Service Reference生成的代理只能被.net3.0+的客戶端調(diào)用。

二、Web Reference不能使用WCF(上面已經(jīng)提到,原因是WCF需要.net3.0的支持);Service Reference則可以使用WCF(當(dāng)然需要3.0+的客戶端)。

三、Web Reference是由wsdl.exe生成客戶端代理的,生成webservice代理類的方法,即從System.Web.Services.Protocols.SoapHttpClientProtocol派生而來,代理類代碼可以指定要訪問的URL屬性;Service Reference是由svcutil.exe生成客戶端代理的,按照新的webservice客戶訪問機(jī)制WCF(不是直接從System.Web.Services.Protocols.SoapHttpClientProtocol派生而來。)代理類代碼沒有URL屬性可指定,而是在客戶端的配置文件app.config中指定endpoint來訪問指定的url。

那么如何添加Service Reference呢,步驟與文章開頭類似,具體如下:?
項目根目錄——引用——右鍵——添加服務(wù)引用——輸入地址——轉(zhuǎn)到(下方會出現(xiàn)服務(wù)與操作兩個小窗口,服務(wù)是代理類名稱,操作是代理類中定義的可調(diào)用方法)——修改命名空間——確定。

與添加Web Reference不同的是沒有點擊“高級”按鈕,高級中添加的Web Reference是.net2.0版本的引用方式,是為了兼容性才保留下來。

msdn解釋:若要調(diào)用 Web 服務(wù)的方法,應(yīng)調(diào)用生成的 Web 服務(wù)代理類的對應(yīng)方法。 生成的代理類執(zhí)行對 Web 服務(wù)方法的 Web 請求。?
【注意】?
要使啟用 AJAX 的 ASP.NET 應(yīng)用程序從腳本調(diào)用 Web 服務(wù),必須配置該應(yīng)用程序注冊所需的 ASP.NET HTTP 處理程序。?
您調(diào)用的 Web 服務(wù)必須是 .asmx 文件,并且必須使用 ScriptServiceAttribute 特性限定。 從腳本調(diào)用的各個方法必須使用 WebMethodAttribute 特性限定。 不帶此特性的方法不在代理類中公開。

以上是服務(wù)引用的步驟及相關(guān)知識,下面看下如何在一個站點添加服務(wù)接口:

服務(wù)要建在web層,在web層或任選一個文件夾右鍵——添加——新建項——選擇web服務(wù)(注意文件是以 .asmx為后綴)

下面是一個小例子:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Data; namespace DemoWeb.API {/// <summary>/// WSVerify 的摘要說明/// </summary>[WebService(Namespace = "http://www.*****.com/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.ComponentModel.ToolboxItem(false)]// 若要允許使用 ASP.NET AJAX 從腳本中調(diào)用此 Web 服務(wù),請取消對下行的注釋。// [System.Web.Script.Services.ScriptService]public class WSVerify : System.Web.Services.WebService{[WebMethod(EnableSession = true)]public DataTable GetLoginUserId(string username, string password){//檢查用戶是否登錄DataTable dt = new BLL.company().GetUserByUsernamePwd(username, password);return dt;}} }

其中WebMehodAttribute封閉類無法被繼承,向使用 ASP.NET 創(chuàng)建的 XML Web services 中的某個方法添加此特性后,就可以從遠(yuǎn)程 Web 客戶端調(diào)用該方法。否則無法調(diào)用。

?

總結(jié)

以上是生活随笔為你收集整理的Web Reference和Service Reference的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。