Answers:
这里的低级答案是Web引用将创建一个客户端代理类,该类允许您的代码与通过WSDL描述的Web服务进行对话,并通过SOAP或HTTP GET进行通信(其他消息表明这只是ASMX,但是Web引用也可以与基于Java的Web服务,基于Python的或Ruby对话,只要它们都使用WSDL并符合WS-I互操作性标准即可。
服务参考将创建与基于WCF的服务进行通信的客户端代理类:不管该WCF服务是否为Web服务。
Web Reference使您可以与基于WS-I Basic Profile 1.1的任何技术的任何服务进行通信,并将相关的元数据公开为WSDL。在内部,它使用客户端的ASMX通信堆栈。
服务参考允许您与基于实现WCF支持的多种协议中的任何一种的任何技术的任何服务进行通信(包括但不限于WS-I基本概要文件)。在内部,它在客户端使用WCF通信堆栈。
请注意,这两个定义都非常广泛,并且都包含非.NET编写的服务。
只要WCF终结点使用basicHttpBinding
或兼容的自定义变体,完全有可能(尽管不建议)添加指向WCF服务的Web引用。
也可以添加指向ASMX服务的服务引用。编写新代码时,仅应始终使用Service Reference,因为它更加灵活且面向未来。
Client
后缀的类。
需要考虑的另一点是,新的Service Interface UI将使您在创建代理类的方式上具有更大的灵活性。例如,如果它们匹配,它将允许您将数据协定映射到现有的dll(实际上这是默认行为)。