WCF - 与Web服务对比

WCF与Web服务之间存在一些主要差异,如下所示.

  • 属性 :  WCF服务由ServiceContract和OperationContract属性定义,而Web服务由WebService和WebMethod属性定义.

  • 协议 :  WCF支持一系列协议,即HTTP,命名管道,TCP和MSMQ,而Web服务仅支持HTTP协议.

  • 托管机制 :  WCF托管有各种激活机制,即IIS(Internet信息服务),WAS(Windows激活服务),自托管和Windows服务,但Web服务仅由IIS托管.

  • 服务 :  WCF支持强大的安全性,可信赖的消息传递,事务和互操作性,而Web服务仅支持安全服务.

  • Serializer :  WCF通过使用System.Runtime.Serialization支持DataContract序列化程序,而Web服务通过使用System.Xml.Serialization支持XML序列化程序.

  • 工具 :  ServiceMetadata工具(svcutil.exe)用于为WCF服务生成客户端,而WSDL.EXE工具用于为Web服务生成相同的文件.

  • 异常处理 : 在WCF中,通过使用FaultContract以更好的方式处理未处理的异常.它们不像SOAP故障那样像Web服务那样返回客户端.

  • 哈希表 : 可以在WCF中序列化哈希表,但在Web服务中不是这种情况.

  • 绑定 :  WCF支持几种类型的绑定,如BasicHttpBinding,WSDualHttpBinding,WSHttpBinding等,而Web服务仅支持SOAP或XML.

  • 多线程 :  WCF通过使用ServiceBehavior类支持多线程,而Web服务不支持此.

  • 双工服务操作 : 除支持单向和请求 - 响应服务操作外,WCF还支持双工服务操作,而Web服务不支持双工服务操作.