Web服务与WCF服务

他们有什么区别?

我什么时候会select一个呢?

这个答案是基于一个不再存在的文章:

文章摘要:

“基本上,WCF是一个服务层,允许你build立可以使用各种通信机制进行通信的应用程序,通过它,你可以使用点对点,命名pipe道,Web服务等进行通信。

你不能比较它们,因为WCF是一个构build可互操作应用程序的框架。 如果你喜欢,你可以把它看作是一个SOA的推动者。 这是什么意思?

那么,WCF符合一个叫做ABC的地方,其中A是你要与之通信的服务地址,B代表绑定,C代表合同。 这很重要,因为可以在不必更改代码的情况下更改绑定。 合同更强大,因为它迫使合同与实施分离。 这就意味着契约是在一个界面中定义的,具体实现是由消费者使用同一个契约思想来约束的。 数据模型被抽象出来。“

稍后…

“当我们需要与其他通信技术(例如,对等,命名pipe道)而不是Web服务通信时,应该使用WCF”

从WCF和Web服务之间有什么区别?

WCF是Microsoft早期的所有Web服务技术的替代品。 它也比传统上被认为是“networking服务”更多。

WCF“Web服务”是通过WCF实现的更广泛的远程通信的一部分。 在WCF中执行事务的灵活性和可移植性要高于传统的ASMX,因为WCF从头开始devise来总结Microsoft提供的所有不同的分布式编程基础结构。 WCF中的一个端点可以通过SOAP / XML轻松地进行通信,因为它可以通过TCP /二进制文件进行通信,并且更改此介质只是一个configuration文件mod。 从理论上讲,这可以减less移植或改变业务需求,目标等时所需的新代码的数量。

ASMX早于WCF,任何ASMX都可以这样做可以WCF(和更多)。 基本上你可以看到WCF试图在逻辑上将所有不同的方式组合在一起,让两个应用程序在微软的世界中进行交stream; ASMX只是其中的一种方式,所以现在归入WCF的能力范围之内。

Web服务只能通过HTTP访问,它可以在无状态的环境中工作,WCF是灵活的,因为它的服务可以托pipe在不同types的应用程序中。 托pipeWCF服务的常见scheme是IIS,WAS,自托pipe,托pipeWindows服务。

主要区别在于Web服务使用XmlSerializer 。 但是WCF使用DataContractSerializer ,与XmlSerializer相比性能更好。

Web Service基于SOAP并以XMLforms返回数据。 它只支持HTTP协议。 它不是开源的,但可以被任何理解xml的客户端使用。 它只能在IIS上托pipe。

WCF也基于SOAP并以XMLforms返回数据。 它是Web服务(ASMX)的发展,支持TCP,HTTP,HTTPS,命名pipe道,MSMQ等各种协议。 WCF的主要问题是,它的繁琐和广泛的configuration。 它不是开源的,但可以被任何理解xml的客户端使用。 它可以在应用程序或IIS上进行托pipe或使用窗口服务。

基本的和主要的不同之处在于,ASP.NET Web服务旨在通过HTTP交换SOAP消息,而WCF服务可以通过任何传输协议(即HTTP,TCP,MSMQ或NamedPipes等)以任何格式(SOAP为默认)交换消息。

主要区别是超时,WCF服务在没有响应时超时,但是web服务没有这个属性。