使用ASMX Web服务有哪些实际缺点?

时间:2010-03-25 07:05:12

标签: wcf web-services asmx

在我的工作场所,我们即将开始一个大项目。我的老板(程序员,这是一家初创公司)希望为此目的使用ASMX webservices。我不想使用弃用的技术开始一个新程序,并希望向他展示这一点。我此刻不喜欢WCF因为它有如此极端的学习曲线,但我宁愿学习它而不是使用不支持的技术。

我遇到的问题是,与WCF相比,我找不到任何实际的缺点和失败列表,以便我可以说服我的老板不要使用它们。并说“它没有那么强大”并不是一个充分的解释。它究竟能做什么,我们可能需要它来做一个不打算在外部共享的Web服务? (因为我们不支持使用我们的网络服务的第三方,除非他们使用我们的客户。)

4 个答案:

答案 0 :(得分:3)

简而言之:

ASMX

  • 仅限于HTTP作为其传输
  • 仅限于在IIS中托管(没有其他选择)
  • 仅限于非常简单的安全性
  • 仅限于SOAP 1.1

WCF

  • 在传输方面更灵活:您可以使用HTTP,NetTCP,MSMQ等等
  • 可以在IIS,WAS中托管,也可以在Windows服务,控制台应用程序,Winforms或WPF应用程序中自托管
  • 有更多安全选项
  • 支持过多的WS- *标准
  • 可与SOAP 1.1和SOAP 1.2互操作

简而言之:WCF是ASMX正确完成的 - 在各方面都更加灵活,功能更强大。

这是WCF和ASMX的另一个非常有用的比较:Comparing ASMX and WCF

最后但同样重要的是,WCF在性能方面也更好,因为这篇相当广泛的MSDN文章非常精彩地展示了(包括性能数字和图表):A Performance Comparison of Windows Communication Foundation (WCF) with Existing Distributed Communication Technologies

答案 1 :(得分:1)

我从未理解为什么有些人认为WCF很难学习。试试这个:在Visual Studio中创建一个新的WCF服务项目。现在看看代码。将其与创建新ASMX项目时获得的相同代码进行比较。它并没有太大的不同。

答案 2 :(得分:0)

我有三个字:WCF。 WCF。 WCF。

以下是另外三个关于你应该选择WCF:Power的原因。多功能性。可配置性。

ASMX非常棒,如果您希望快速而肮脏的Web服务启动并运行,不过说实话,只需要几分钟就可以完成WCF。

答案 3 :(得分:0)

使用asmx很难实现WS- *:事务,可靠消息传递,安全性等等。

以后的绑定:你可以通过配置改变通信,asmx只是http。

WF公开服务和AppFabric适用于wcf。

我不会怀疑,今天wcf是启动需要服务的项目的最佳选择。