WCF v.s.传统的ASP.Net Web服务

时间:2009-07-22 12:34:43

标签: c# .net wcf web-services asmx

  

可能重复:
  Web Services — WCF vs. Standard


有人可以推荐一些文档来描述为什么WCF比传统的ASP.NET Web服务更好吗?我对性能和安全性特别感兴趣。

5 个答案:

答案 0 :(得分:8)

WCF更灵活:

  • 可以通过HTTP使用(如旧版ASMX)
  • 还可以:可以通过NetTCP,MSMQ,wsHttp等使用

  • WCF服务可以在IIS中托管(如旧版ASMX)

  • 但WCF服务也可以在控制台应用程序,Windows NT服务等中自托管。

  • WCF提供比ASMX(消息安全等)更多的安全功能和安全级别。

  • WCF提供可靠的消息传递,事务支持等功能。

在WCF中,配置文件中几乎任何东西都是可配置的 - 远远超过ASMX。

我手边没有任何现成的文件可以说明这一点 - 但这就是它的本质,我会说。

马克

PS:不确定这个是否包含对您有用的任何内容:

http://whitepapers.techrepublic.com/abstract.aspx?kw=remoting&docid=270830

PPS:你会认为微软会有大量的白皮书来说服人们 - 但是没有...... :-)

答案 1 :(得分:4)

乔治,

我没有任何这样的文件方便,因为WCF更好的原因很明显。

首先,因为Microsoft: ASMX Web Services are a “Legacy Technology”。他们还公开表示他们不会对WSDL.EXE和ASMX技术的其他部分进行更改。我们在这个行业中遇到了传统技术和应用程序的麻烦 - 今天创建一个新的遗留代码毫无意义。

其次,WCF抽象出ASMX,Remoting和WSE的概念。 “他们可以做任何事情,WCF可以做得更好”。

答案 2 :(得分:3)

简单地说,你的问题相当于“为什么.NET比VB6更好”。如果有足够的时间,任何传统技术都将成为维护/财务负担。

正如你特别询问安全性和性能,我会说“这取决于”。可以使任一选项安全,性能很大程度上取决于您编写的代码。 WCF性能的一个优点是你不必在IIS中托管它 - 所以你有更多的选择和灵活性来使它具有高性能。

答案 3 :(得分:1)

WCF是一个高度可配置的堆栈,具有几乎无限的序列化,安全性,传输等组合。 针对您的具体问题,WCF实现了WS- *协议,包括传输和消息安全性。 WCF datacontract序列化器比acmx中使用的xmlserialzer快得多。 Net.Tcp传输也比基于http的传输更高效。

我在这里找到了一个性能比较 http://msdn.microsoft.com/en-us/library/bb310550.aspx

答案 4 :(得分:1)

Microsoft MSDN上非常好的概述: “将ASP.NET Web服务与基于开发的WCF进行比较” http://msdn.microsoft.com/en-us/library/aa738737.aspx