我完全搞不清WCF和ASMX web服务。在我的早期阶段,我使用了很多web服务,现在引入了这个叫做WCF的新东西。我仍然可以创建作为web服务功能的WCF。我想WCF里会有更多的东西。
WCF和Web服务之间有什么区别?什么时候应该分别使用?
WCF完全取代了ASMX web服务。ASMX是做web服务的旧方法,WCF是做web服务的当前方法。在客户机或服务器上,所有新的SOAP web服务开发都应该使用WCF。
ASMX Web服务只能由HTTP(使用. ASMX的传统Web服务)调用。而WCF服务或WCF组件可以被任何协议(如http、tcp等)和任何传输类型调用。
第二,ASMX web服务不灵活。然而,WCF服务是灵活的。如果您创建了一个新版本的服务,那么您只需要公开一个新端。因此,服务是敏捷的,这是考虑当前业务趋势的一种非常实用的方法。
我们将WCF开发为契约、接口、操作和数据契约。作为开发人员,我们更关注业务逻辑服务,不需要担心通道堆栈。WCF是一个适用于任何类型服务的统一编程API,因此我们创建服务并使用配置信息来建立通信机制,如HTTP/TCP/MSMQ等
Keith Elder在这里很好地比较了ASMX到WCF。来看看。
ASMX和WCF的另一个比较可以是在这里找到 -我不100%同意那里的所有观点,但它可能会给你一个想法。
WCF基本上是“立体立体上的ASMX”——它可以是ASMX的所有功能——加上更多!。
ASMX是:
WCF可以是:
简而言之:WCF将完全取代ASMX。
检查MSDN上的WCF开发中心。
更新:链接似乎是死的-试试这个:什么是Windows通信基金会?
这是一个非常老的问题,但我认为ASMX的好处没有得到公平的描述。虽然不是很灵活,但ASMX web服务非常易于使用和理解。虽然WCF更加灵活,但它的建立和配置也更加复杂。
只要您添加文件,ASMX web服务就可以作为web服务引用进行添加。(假设您的项目构建完成)
用于简单的开发工作流 create webservice -> run webservice -> add webservice reference, ASMX webservice很少会出错,很少会配置错误,这就是它的优点
create webservice
run webservice
add webservice reference
对于那些断言WCF取代ASMX的人,我的回答是,WCF需要添加一个精简的K.I.S.S.配置模式,以便完全取代ASMX。
示例web。ASMX web服务的配置:
<?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings /> <system.web> <compilation targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> </configuration>
关于asmx web服务在WCF上的简单性,有很多讨论。让我在这里澄清几点。