📜  WCF-Web服务

📅  最后修改于: 2020-11-19 09:18:34             🧑  作者: Mango


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以更好的方式处理未处理的异常。它们不会像SOAP错误那样像在Web服务中一样返回给客户端。

  • 哈希表-可以在WCF中序列化哈希表,但是Web服务中不是这种情况。

  • 绑定-WCF支持几种类型的绑定,例如BasicHttpBinding,WSDualHttpBinding,WSHttpBinding等,而Web服务仅支持SOAP或XML。

  • 多线程-WCF通过使用ServiceBehavior类支持多线程,而Web服务不支持此功能。

  • 双工服务操作-WCF除了支持单向和请求响应服务操作外,还支持双工服务操作,而Web服务不支持双工服务操作。