使用WCF相比ASMX Web服务有哪些好处?

10

使用WCF相较于ASMX web服务的好处是什么?

有哪些指向性的建议呢?

3个回答

13
WCF之所以强大,是因为它可以通过多个地址、绑定和契约来公开服务。在WCF中,您是在接口级别上进行编程,而不是实际操作。如果您仔细想想,这非常微妙,但又极其强大。使用ASMX样式的服务,您只能将其限制在由IIS托管的http端点上,而使用WCF,则可以以各种方式暴露单个契约并进行实现和托管。例如,如果您编写了一个asmsx服务计算器,返回两个数字的总和,它将永远存在于IIS上,并从那里调用。通过WCF,相同的服务操作,即Add(int a,int b),不仅可以根据通道在其实现中进行更改,而且可以在许多不同的方式下托管,而不是在IIS之外。此外,在ASMX中,如果您要实现任何WS*标准,您必须使用WSE等,而WCF可以为您处理所有这些低级别的管道工作,您可以通过配置或代码来实现,例如安全对话、事务等等。有很多关于WCF的资源,您可以在这里找到一个好的起点。

2

虽然这个网站不是我编写的,但是微软的“王者 vs 挑战者”网站提供了很多资源来展示为什么他们认为 WCF 是比 ASMX 更好的选择。

http://www.microsoft.com/net/wcf/champ/


1

ASMX Web服务现在被微软视为“传统技术”。所有新的Web服务开发应使用WCF。


你能提供一个关于 ASMX 的支持声明的链接吗? - mattmc3
http://johnwsaunders3.wordpress.com/2009/07/03/microsoft-says-asmx-web-services-are-a-%E2%80%9Clegacy-technology%E2%80%9D/ - John Saunders
我认为你的信息有点过时,或者是微软的左手不知道右手在做什么。相关的一行话是“XML Web服务将继续支持多年,可能存在某些情况下不需要迁移现有的Web服务。”:http://msdn.microsoft.com/en-us/library/ff649453.aspx - mattmc3
@matt:这与我所说的或者微软关于ASMX是“传统技术”的说法有何矛盾之处?有些情况下,从经典ASP迁移并没有意义,而经典ASP显然比ASMX更像是一种“传统技术”。此外,P&P关于Web Service Software Factory的内容与微软关于ASMX的整体战略关系不大。 - John Saunders

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接