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 服务仅支持安全服务。
序列化器- WCF 通过使用 System.Runtime.Serialization 支持 DataContract 序列化器,而 Web 服务通过使用 System.Xml.Serialization 支持 XML 序列化器。
工具- ServiceMetadata 工具 (svcutil.exe) 用于生成 WCF 服务的客户端,而 WSDL.EXE 工具用于为 Web 服务生成相同的客户端。
异常处理- 在WCF中,通过使用FaultContract可以更好地处理未处理的异常。它们不会像 Web 服务中那样作为 SOAP 错误返回给客户端。
哈希表- 可以在 WCF 中序列化哈希表,但在 Web 服务中并非如此。
绑定- WCF 支持多种类型的绑定,如 BasicHttpBinding、WSDualHttpBinding、WSHttpBinding 等,而 Web 服务仅支持 SOAP 或 XML。
多线程- WCF 通过使用 ServiceBehavior 类支持多线程,而 Web 服务不支持多线程。
双工服务操作- WCF 除了支持单向和请求响应服务操作之外,还支持双工服务操作,而 Web 服务不支持双工服务操作。