下面列出了WCF和Web服务之间存在一些重大差异。
-
属性:WCF服务是通过定义ServiceContract和OperationContract属性,而在Web服务,WebService和WebMethod属性用于定义相同。
-
协议:WCF支持多种协议,即HTTP,命名管道,TCP和MSMQ;而Web服务仅支持HTTP协议。
-
托管机制:WCF托管不同的激活机制,即IIS(Internet信息服务),WAS(Windows激活服务),自托管和Windows服务,而Web服务则只能由IIS托管。
-
服务:WCF支持一个强大的安全,值得信赖的消息传递,事务性和互操作性,而Web服务只支持保障服务。
-
序列化:WCF支持DataContract串行采用System.Runtime.Serialization,而Web服务通过使用System.Xml.Serialization支持XML序列化。
-
工具:ServiceMetadata工具(svcutil.exe)用于客户机生成的WCF服务而WSDL.EXE工具用来产生相同web服务。
-
异常处理:在WCF中,未处理的异常都是在一个更好的方式通过使用FaultContract处理,并没有得到Web服务SOAP(简单对象访问协议)故障返回给客户端等。
-
有可能要序列哈希Tablein WCF,但这不能在web服务中。
-
绑定:WCF支持多种类型,如 basicHttpBinding,WSDualHttpBinding,WSHttpBinding等绑定,而Web服务仅支持SOAP或XML。
-
多线程:WCF支持多线程利用ServiceBehavIor类,而这Web服务不支持。
-
双工服务操作:WCF支持双工服务业务除了支持单向和请求 - 响应服务操作,而Web服务不支持双工服务操作。