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服务不支持双工服务操作.