WCF - 與Web服務對比



WCF和Web服務之間存在一些主要區別,如下所示。

  • 屬性 - WCF服務由ServiceContract和OperationContract屬性定義,而Web服務由WebService和WebMethod屬性定義。

  • 協議 - WCF支援多種協議,例如HTTP、命名管道、TCP和MSMQ,而Web服務僅支援HTTP協議。

  • 託管機制 - WCF託管有多種啟用機制,例如IIS(Internet Information Service)、WAS(Windows Activation Service)、自託管和Windows服務,而Web服務僅由IIS託管。

  • 服務 - WCF支援強大的安全性、可信賴的訊息傳遞、事務和互操作性,而Web服務僅支援安全服務。

  • 序列化器 - WCF透過使用System.Runtime.Serialization支援DataContract序列化器,而Web服務透過使用System.Xml.Serialization支援XML序列化器。

  • 工具 - WCF服務的客戶端生成使用ServiceMetadata工具(svcutil.exe),而Web服務的客戶端生成使用WSDL.EXE工具。

  • 異常處理 - 在WCF中,未處理的異常透過使用FaultContract得到更好的處理。它們不像Web服務那樣作為SOAP錯誤返回給客戶端。

  • 雜湊表 - 在WCF中可以序列化雜湊表,但在Web服務中則不行。

  • 繫結 - WCF支援多種型別的繫結,如BasicHttpBinding、WSDualHttpBinding、WSHttpBinding等,而Web服務僅支援SOAP或XML。

  • 多執行緒 - WCF透過使用ServiceBehavior類支援多執行緒,而Web服務不支援。

  • 雙工服務操作 - WCF除了支援單向和請求-響應服務操作外,還支援雙工服務操作,而Web服務不支援雙工服務操作。

廣告