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