WCF與Web服務/Web Service


下面列出了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服務不支援雙工服務操作。