Web参考和服务参考之间的区别?

Posted

技术标签:

【中文标题】Web参考和服务参考之间的区别?【英文标题】:Difference between web reference and service reference? 【发布时间】:2010-09-23 10:25:23 【问题描述】:

WCF 中的 Web 引用和服务引用有什么区别? WCF 中哪个更可取?

【问题讨论】:

还可以看看 Channel Factory - ***.com/questions/1698275/… 嗯,也许选择一个答案?顺便问下好问题 【参考方案1】:

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

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

【讨论】:

+1 表示任何具有正确格式的 WSDL 的标准 Web 服务都符合标准 那么我可以向基于 Java 的 Web 服务添加服务引用吗?它还有意义吗?因为 Java 对 wcf 堆栈一无所知... 是的,如果有 wsdl,您可以添加对 java 等 Web 服务的服务引用。在这种情况下,服务引用会将其视为“经典”网络引用。 +1 表示 Web 服务可以使用 WSDL 描述的 Web 服务以及 ASMX。事实上,我有一个业务层,它有一个 Web 引用和一个服务引用。 Web 引用使用 WSDL Web 服务,而服务引用使用 ASMX 服务。【参考方案2】:

Web Reference 允许您与任何基于实现 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() 调用,但我无法通过服务参考找到它。 @BenMills:寻找一个带有Client 后缀的类。【参考方案3】:

服务引用是用于添加对所有 WCF 服务(它们可能不是 Web 服务)的引用的较新接口,而 Web 引用特别关注 ASMX Web 引用。

您可以通过添加服务参考中的高级选项访问网络参考(如果我没记错的话)。

我会使用服务引用,因为据我了解,它是两者中较新的机制。

【讨论】:

添加服务参考 -> 高级 -> 添加 Web 参考...没有什么比不直观的解决方案更好。【参考方案4】:

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

它们旨在与 WCF 一起使用。

如果您使用 WebProxy,那么您几乎将自己绑定到使用 WCF over HTTP

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于Web参考和服务参考之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

Web参考和服务参考之间的区别?

Web服务和网站之间的区别

Web 服务器和 Web 服务之间有区别吗?

Web服务和Web应用程序之间的区别

JMS和Web服务之间的区别[重复]

WCF、Web API、WCF REST 和 Web 服务之间的区别?