为什么我必须使用WCF而不是Web服务?

时间:2013-03-11 17:40:01

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

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

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

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

3 个答案:

答案 0 :(得分:2)

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

优点是您使用WCF获得的所有其他选项,例如安全性,不同绑定的可能性,独立主机以及更多内容。此外,它是.NET社区选择的方向,因此如果您希望在基于.NET服务的世界中保持相关性,则需要了解它。

答案 1 :(得分:1)

WCF还有很多东西,而不是ASMX Web服务。如果ASMX Web服务适合您的需求,那么可以使用它,但是您可能会发现使用WCF比使用ASMX Web服务更容易解决问题。使用WCF也可以做很多事情(记住它不仅仅是一种创建Web服务的框架),而使用ASMX Web服务是无法做到的。

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

答案 2 :(得分:0)

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

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

  • 提供跨多个平台的不同通信阵列:HTTP,HTTPS,TCP,MSMQ等。
  • 它提供额外的安全性。
  • 它有更好的序列化和反序列化方法。
  • 它提供了更多的代码可用性。
  • 不同形式的托管。

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

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

希望这有帮助。