【问题标题】:Why i have to use WCF instead of web service? [duplicate]为什么我必须使用 WCF 而不是 Web 服务? [复制]
【发布时间】:2013-02-27 00:13:15
【问题描述】:

这是我关于 stackoverflow 的第一个问题。

我读过很多文章说开发人员应该使用 WCF 而不是 Web 服务,因为它可以托管在不同的托管环境等...

但我想的是,我可以使用 HttpRequest 从任何项目中调用 Web 服务。 那么为什么我必须使用 WCF。

【问题讨论】:

  • 您不必使用 WCF,只要 SOAP Web 服务对您同样有效。不过,您可能必须将您的框架重新定位到 2.0,因为 Visual Studio 中没有 .net 4 的 SOAP Webservices 模板。
  • WCF 是 Microsoft 实现 SOA 的方法。使用 WCF,您可以使用多个绑定来访问您的服务器,例如 Net Tcp、MsMq 等。
  • 您可能对 Web API 感兴趣:asp.net/web-api
  • @TimMedora 这是一个很好的建议,在我的回答中忘记了。
  • @FrankThomas:为什么你会建议 OP 恢复到旧的框架版本以使用过时的技术?这是开玩笑的意思吗?

标签: c# asp.net .net wcf web-services


【解决方案1】:

使用 WCF,开箱即用的绑定是 BasicHttpBinding,它只是 SOAP,与 .asmx Web 服务相同。作为客户端,您仍然可以以与访问 .asmx 服务完全相同的方式访问它——通过从 WSDL 生成代理,或正常的 HttpWebRequest 或您之前使用的任何方式。

好处是您使用 WCF 获得的所有其他选项,例如安全性、不同绑定的可能性、独立托管等等。此外,这是 .NET 社区选择的方向,因此,如果您想在基于 .NET 服务的世界中保持相关性,则需要学习它。

【讨论】:

    【解决方案2】:

    WCF 比 ASMX Web 服务要多得多。如果 ASMX Web 服务满足您的需求,那么使用它就可以了,但是您可能会发现使用 WCF 比使用 ASMX Web 服务更容易解决一些问题。您还可以使用 WCF 完成许多使用 ASMX Web 服务无法完成的事情(请记住,它是一个框架,而不仅仅是一种创建 Web 服务的方式)。

    创建 WCF 服务而不是 ASMX Web 服务,即使它们用于相同的目的,这似乎增加了复杂性而没有额外的好处,但这是开始学习 WCF 的好方法。

    【讨论】:

      【解决方案3】:

      您不必使用 Windows Communication Foundation。它最终将是你的选择。该项目也可能有助于满足您的需求。

      但是,您使用 Windows Communication Foundation 的主要原因如下:

      • 提供跨多个平台的各种通信:HTTP、HTTPS、TCP、MSMQ 等。
      • 它提供了额外的安全性。
      • 它有更好的序列化和反序列化手段。
      • 它提供了更多的代码重用性。
      • 不同的托管形式。

      这些是一些关键,最重要的是它的设计可以节省开发人员在基于 Web 的通信中的时间。它也是一种为完全敏捷的应用程序引入面向服务的架构的方法。

      另一个重要的注意事项是要意识到微软对标准 Web 服务的支持有限;现在他们已经实现了 WCF 技术。

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-20
        • 2021-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-25
        相关资源
        最近更新 更多