Web引用和服务引用之间的区别?

130 .net wcf asmx

WCF中的Web引用和服务引用有什么区别?哪个在WCF中更受欢迎?

Kev*_*man 99

这里的低级答案是Web Reference将创建一个客户端代理类,允许您的代码与通过WSDL描述的Web服务进行通信,并通过SOAP或HTTP GET进行通信(其他海报表明它只是ASMX,但是Web引用也可以与基于Java的Web服务或基于Python或Ruby交谈,只要它们都能讨论WSDL并符合WS-I互操作性标准).

服务引用将创建与基于WCF的服务通信的客户端代理类:无论该WCF服务是否是Web服务.


Chr*_*ter 66

Web引用允许您基于实现WS-I Basic Profile 1.1的任何技术与任何服务进行通信,并将相关元数据公开为WSDL.在内部,它使用客户端的ASMX通信堆栈.

服务引用允许您基于任何实现WCF支持的许多协议(包括但不限于WS-I Basic Profile)的技术与任何服务进行通信.在内部,它使用客户端的WCF通信堆栈.

请注意,这两个定义都非常广泛,并且都包含不是用.NET编写的服务.

只要WCF端点使用basicHttpBinding或某些兼容的自定义变体,就完全可以(尽管不推荐)添加指向WCF服务的Web引用.

还可以添加指向ASMX服务的服务引用.在编写新代码时,您应该始终使用服务引用,因为它更灵活且面向未来.

  • 谁能帮助我开始了解如何通过服务引用使用服务?通过Web Reference,我似乎总是能够在某种服务对象中找到核心功能。有了服务参考,就没有那么多了。例如,我尝试使用 FedEx 费率服务来获取各种 FedEx 运输选项的价格。我知道某个地方有一个 getRates() 调用,但我无法通过服务引用找到它。 (2认同)

Dav*_*ney 16

服务引用是用于添加对各种WCF服务(它们可能不是Web服务)的引用的较新接口,而Web引用特别涉及ASMX Web引用.

您可以通过添加服务引用中的高级选项访问Web引用(如果我没记错的话).

我使用服务参考,因为据我了解,它是两者的新机制.

  • 添加服务参考 - >高级 - >添加Web参考...不像非直观的解决方案. (8认同)

Bri*_*sio 7

服务引用处理端点和绑定,这些端点和绑定是完全可配置的.它们允许您通过任何传输协议(HTTP,TCP,共享内存等)将客户端代理指向WCF

它们旨在与WCF一起使用.

如果您使用WebProxy,那么您几乎可以使用WCF over HTTP


Wag*_*ira 5

需要考虑的另一点是,新的服务界面UI将为您提供更加灵活的创建代理类的方式.例如,它允许您将数据协定映射到现有的dll(如果它们匹配)(实际上这是默认行为).