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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

【转】Web Reference和Service Reference的区别

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

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

按照上面的步驟就可以將引用添加到Web References文件夾下,這也是以往經(jīng)驗(yàn),但是具體使用時(shí)發(fā)現(xiàn)添加的是Web Reference并不能滿足項(xiàng)目的需要,這里需要用的是Service Reference。在這之前也查過(guò)很多文章,大多數(shù)都說(shuō)是兩者沒(méi)有什么大的區(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派生而來(lái),代理類代碼可以指定要訪問(wèn)的URL屬性;Service Reference是由svcutil.exe生成客戶端代理的,按照新的webservice客戶訪問(wèn)機(jī)制WCF(不是直接從System.Web.Services.Protocols.SoapHttpClientProtocol派生而來(lái)。)代理類代碼沒(méi)有URL屬性可指定,而是在客戶端的配置文件app.config中指定endpoint來(lái)訪問(wèn)指定的url。

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

與添加Web Reference不同的是沒(méi)有點(diǎn)擊“高級(jí)”按鈕,高級(jí)中添加的Web Reference是.net2.0版本的引用方式,是為了兼容性才保留下來(lái)。

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

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

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

下面是一個(gè)小例子:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Data; namespace DemoWeb.API {/// <summary>/// WSVerify 的摘要說(shuō)明/// </summary>[WebService(Namespace = "http://www.*****.com/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.ComponentModel.ToolboxItem(false)]// 若要允許使用 ASP.NET AJAX 從腳本中調(diào)用此 Web 服務(wù),請(qǐng)取消對(duì)下行的注釋。// [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;}} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

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

總結(jié)

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

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