none
请教在 VS2008 类库项目中 Add Service References 和 Add Web References 有啥区别? RRS feed

  • 问题

  • 以前 VS2005 类库项目中 引用 WebService  是通过 Add Web References 完成的,
    现在 VS2008 类库项目中 同样希望引入 WebService ,但有Add Service References 和 Add Web References 两种,有点晕,请大家指点 ?

    2009年5月19日 5:39

答案

  • Hi,Alvin:

    (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 时可用。
    希望能回答你的疑问~

    you have a dream,you gonna protect it!
     http://www.cnblogs.com/frank_xl
    • 已标记为答案 alvinmmmmmm 2009年5月19日 12:46
    2009年5月19日 9:15
    版主

全部回复

  • Hi,Alvin:

    (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 时可用。
    希望能回答你的疑问~

    you have a dream,you gonna protect it!
     http://www.cnblogs.com/frank_xl
    • 已标记为答案 alvinmmmmmm 2009年5月19日 12:46
    2009年5月19日 9:15
    版主
  • Hi,Alvin:

    (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 时可用。
    希望能回答你的疑问~

    you have a dream,you gonna protect it!
     http://www.cnblogs.com/frank_xl

    3ku 老徐 :)    不过还有个疑问,请你帮忙看看``  

     我用VS2008在类库中 分别 Add Service Reference、Add Web Reference 的方式引用同一个 WebService ,添加后查看各自的 Reference.cs, 
    对 Add Service Reference 生成的 Reference.cs 看不大理解, 请教它的作用 和 Add Web Reference 生成的Reference.cs 一样么? 有何差异呢?


    2009年5月19日 13:30
  • 另外, google了一些资料,也贴出来

    Add Web Reference is a wrapper over wsdl.exe and can be used to create proxies for .NET 1.1 or 2.0 clients. Of course this means when you are pointing to a WCF service you have to be pointing to an endpoint that uses basicHttpBinding

    Add Service Reference is a wrapper over svcutil.exe and also creates clients proxies (and additionally web.config entries). These proxies, however, can only be consumed by .NET 3.0+ clients.

    http://andrewtokeley.net/archive/2008/07/10/the-difference-between-ldquoadd-web-referencerdquo-and-ldquoadd-service-referencerdquo.aspx

    2009年5月19日 13:35
  •     Hi,Alvin:
      你太客气啦,晕,我也是学习。
       你说的情况我自己做了一下试验,同时存在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服务框架的规则。
     
      以上是我的理解,不知道对你有什么启发没~
    you have a dream,you gonna protect it! http://www.cnblogs.com/frank_xl
    2009年5月19日 14:07
    版主
  •     Hi,Alvin:
      你太客气啦,晕,我也是学习。
       你说的情况我自己做了一下试验,同时存在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服务框架的规则。
     
      以上是我的理解,不知道对你有什么启发没~
    you have a dream,you gonna protect it! http://www.cnblogs.com/frank_xl

    很受启发```   学习```
    2009年5月20日 13:11