WCF和ASMX Web服务有什么区别?

我完全混淆了WCF和ASMX Web服务。 在我的早期阶段,我使用了很多Web服务,现在引入了称为WCF的新事物。 我仍然可以创建用作Web服务的WCF。 我想WCF中会有更多的东西。

WCF和Web服务有什么区别? 什么时候应该使用每一个?


Keith Elder很好地比较了ASMX和WCF。 一探究竟。

ASMX和WCF的另一个比较可以在这里找到 - 我不完全同意所有的观点,但它可能会给你一个想法。

WCF基本上是“立体模型上的ASMX” - 它可以是ASMX所能做的 - 再加上更多!

ASMX是:

  • 简单易用的写入和配置
  • 仅在IIS中可用
  • 只能从HTTP中调用
  • WCF可以是:

  • 托管在IIS中,Windows服务,Winforms应用程序,控制台应用程序 - 您拥有完全的自由
  • 与HTTP(REST和SOAP),TCP / IP,MSMQ和更多协议一起使用
  • 简而言之:WCF在这里完全取代ASMX。

    查看MSDN上的WCF开发人员中心。

    更新:链接似乎已经死了 - 试试这个:Windows Communication Foundation是什么?


    ASMX Web服务只能通过HTTP(带有.asmx的传统Web服务)来调用。 虽然WCF服务或WCF组件可以通过任何协议(如http,tcp等)和任何传输类型来调用。

    其次,ASMX网络服务不灵活。 但是,WCF服务非常灵活。 如果你制作一个新版本的服务,那么你只需要公开一个新的结束。 因此,服务是敏捷的,而且这是一种非常实用的方法,可以查看当前的业务趋势。

    我们将WCF作为合同,界面,操作和数据合同进行开发。 作为开发人员,我们更关注业务逻辑服务,不必担心通道堆栈。 WCF是任何类型服务的统一编程API,因此我们创建服务并使用配置信息来设置HTTP / TCP / MSMQ等通信机制


    这是一个非常古老的问题,但我不认为ASMX的好处已被相当描绘。 ASMX网络服务虽然不是非常灵活,但使用和理解起来非常简单。 虽然WCF更灵活,但站起来和配置也更复杂。

    ASMX Web服务已准备就绪,只要添加文件即可添加为web服务参考。 (假设你的项目建立)

    对于create webservice - > run webservice - > add webservice reference的简单开发流程,ASMX webservice几乎没有什么可以出错,没有太多可以错误配置的地方,这就是它的强项。

    为了回应那些声称WCF取代ASMX的人,我会回复说WCF需要添加一个简化的KISS配置模式,以便完全取代ASMX。

    ASMX webservice的示例web.config:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <appSettings />
      <system.web>
        <compilation targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
      </system.web>
    </configuration>
    
    链接地址: http://www.djcxy.com/p/12315.html

    上一篇: What are the differences between WCF and ASMX web services?

    下一篇: What's the difference between REST & RESTful