Web服务和wcf之间的主要区别是什么?

时间:2011-01-22 18:31:54

标签: c# wcf web-services

我知道Web服务只能在IIS中托管,但wcf可以在IIS中托管,也可以在win服务中托管。但实际的主要力量在于wcf,开发人员选择wcf而不是web服务。请详细说明。感谢

3 个答案:

答案 0 :(得分:2)

Windows Communication Foundation(WCF)具有ASP.NET兼容模式选项,可以使WCF应用程序像ASP.NET Web服务一样进行编程和配置,并模仿其行为。

更好的性能,Web服务使用XmlSerializer,WCF使用DataContractSerializer,与XmlSerializer相比,性能更好。

换句话说,您可以使用WCF托管普通的旧Web服务。而且你有更多的可能性,比如使用Named Pipes / TCP / MSMQ等进行通信。

答案 1 :(得分:2)

WCF提供:

  • 统一编程模型
  • 新功能
  • 更多协议
  • 支持旧的ASMX / XML webservices

在.NET中,除非您有非常具体的遗留要求,否则请使用WCF。

答案 2 :(得分:0)

基本上,WCF是构建分布式应用程序的更强大的方式。与asmx实际上只有SOAP over http相反,WCF提供了许多其他通信提供程序(例如TCP / IP)。 WCF允许您通过配置配置其行为(如何处理数据 - 异步vs同步,只有一个wcf服务实例用于任何客户端请求等)。所以wcf,简而言之就是.net 2.0的远程类加上asmx的成功。话虽如此,您可以在自己的进程中在IIS外部托管您的WCF - Win Service,Win Form或任何exe。您只需要实现服务主机。