1、 添加web引用和添加服務(wù)引用有什么區(qū)別, Add Service References 和 Add Web References 有啥區(qū)別? 參考
http://social.microsoft.com/Forums/zh-CN/xmlwebserviceszhchs/thread/808d870b-49f1-47ac-b105-4beb580bcec6 (1)VS2005里提供的Add Web Reference(添加Web服務(wù)引用)的功能主要是添加Web Service引用。 (2)VS2008保留了Add Web Reference(添加Web服務(wù)引用)也是為了版本向前兼容。目前很多項目還是基于.NET Framework 2.0。 (3)VS2008在升級以后為了對.NET Framework 3.0 或 3.5版本上WCF Service Library的支持。增加了Add Service Reference(添加服務(wù)引用)功能。Framework3.0 或 3.5 時可用。 你說的情況我自己做了一下試驗,同時存在Add Service Reference、Add Web Reference 兩者情況的項目類型是Web服務(wù)程序。包括Web Service項目。普通的控制臺等類型是沒有Add Web Reference 。 我仔細對比了兩種方式添加同一個 WebService生成的客戶端文件 Reference.cs, 有差別。 1.主要添加引用都有一個獲取服務(wù)元數(shù)據(jù),反序列話本地類文件的過程。這個結(jié)構(gòu)也基本類似。都包含wsdl\discovery等文件。 這個也和WCF Service支持Web Service的核心行業(yè)標準有關(guān)系。畢竟WCF的特性之一就是兼容Web Service的特性。 2.不同的地方時Add Web Reference 生成的 Reference.cs文件里,包含一個服務(wù)代理類,他負責(zé)與Web服務(wù)通信,它繼承一個Soap類,使用SOAP協(xié)議,SOAP簡單對象訪問協(xié)議,基于XML語言。此外還包含一些Web服務(wù)類里定義的方法,和與之相關(guān)的異步調(diào)用方法和事件。遵守.NET Web Service 的主要規(guī)則。 3.Add Service Reference生成的客戶端文件 Reference.cs。我看了一下,這個也會反序列化一個本地代理類,很相似和前者。不過除了服務(wù)類和其相關(guān)的一些別的類和契約接口。其中比較重要就是一個契約和一個通信管道。這個主要和WCF框架的編程模型和反序列話機制有關(guān)系。因為WCF 強調(diào)的是 契約的概念,還有就是綁定協(xié)議,這個就直接決定了客戶端和服務(wù)端通信的通道類型。你在這個文件里也能看到。此外還有服務(wù)請求和相應(yīng)對應(yīng)的信息。遵循WCF服務(wù)框架的規(guī)則。 ——————————————————————————– 同時存在Add Service Reference、Add Web Reference 兩者情況的項目類型是Web服務(wù)程序。包括Web Service項目。普通的控制臺等類型是沒有Add Web Reference 。 都是可以Add Web Reference的誒,控制臺類型項目在Add Service Reference窗口有個Advanced按鈕,其中仍然可以選擇Add Web Reference。我覺得是微軟建議使用Add Service Reference,但保留了Add Web Reference以保持兼容性。 我測試了使用Add Web Reference這種方式,可以添加WCF服務(wù) 來源:https://www./content-4-441151.html
|