WCF – 与 Web 服务
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 以更好的方式处理未处理的异常。它们不会像在 Web 服务中那样作为 SOAP 错误返回给客户端。
-
哈希表– 可以在 WCF 中序列化哈希表,但在 Web 服务中并非如此。
-
绑定– WCF 支持多种类型的绑定,如 BasicHttpBinding、WSDualHttpBinding、WSHttpBinding 等,而 Web 服务仅支持 SOAP 或 XML。
-
多线程– WCF 通过使用 ServiceBehavior 类支持多线程,而这在 Web 服务中不受支持。
-
Duplex Service Operations – 除了支持单向和请求-响应服务操作之外,WCF 还支持双工服务操作,而 Web 服务不支持双工服务操作。