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