Visual Studio选项有什么区别:ASP.NET Web服务和WCF服务

时间:2009-04-21 17:12:05

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

我看到有两个选项,我知道可以在Web服务中使用...显然,WCF和ASP.NET Web服务。有什么不同?我刚刚开始接收WCF并且过去曾经接触过Web服务,但我当然不是专家。

3 个答案:

答案 0 :(得分:8)

很容易知道差异。

ASP.NET Web方法被称为ASMX [由于文件扩展名](请查看4GuysFromRolla,它们有good tutorial

这项技术使您可以将方法公开为Web服务,这样您就可以从任何地方连接它(到WS)并使用它(方法)。但是...... 你无法保护服务器和客户端之间的数据,比如,你可以在清除模式下发送大文件等......

[注意]您可以使用证书来保护对Web服务的访问,但这很麻烦而且非常复杂,通常在ASMX中我们使用username / passsword来访问方法(再一次......以纯文本形式) !)

WCF 中,您处于Web服务的不同世界,这是.NET(迄今为止)公开服务的最佳技术(您能看到差异吗? 。 服务!不是 Web服务),WCF不需要运行IIS,它可以在服务器上作为系统服务运行,使用控制台环境(如命令行),在TCP / IP模式等,所以我们说WCF是服务,而不是Web服务。请记住,ASMX需要运行IIS,并且只能在Web服务器中运行。

使用WCF,您可以使用SSL加密通信(要在ASMX中执行此操作,您需要使用 WSE - Web服务增强功能)并且很容易实现它,您可以发送大文件并且安全(在ASMX中你需要使用 MTOM - 消息传输优化机制)。

您可以设置传输首选项只需更改一行代码,如果您愿意,甚至可以更改XML配置文件,安全性更高等等:)

希望您对此有更好的总体概述,但还有更多。

底线:要公开您不需要保护的Web服务,您可以使用ASMX,完全没问题,但如果您需要以某种方式保护通信,请在WCF中执行此操作!

链接you can read here some performance comparative between the 2 services

答案 1 :(得分:1)

ASP.NET Web服务是Microsoft首次尝试Web服务。

WCF取代了ASP.NET Web服务和.NET远程处理。 WCF提供了一个通用的编程模型,使您能够执行两种较旧的技术,包括对各种协议和安全模型的支持。

如果您有选择,请使用WCF。

答案 2 :(得分:0)

ASP.NET webservices是好的 - 但它仅限于在IIS中托管的HTTP,并且还有其他问题。

WCF支持更多传输协议(HTTP以各种方式,TCP,MSMQ等),具有更丰富的安全模型(凭据,联合安全性),并提供托管选项 - 在Windows应用程序或服务中自托管,在IIS或WAS等等。

简而言之:如果你现在就开始 - 一定要学习WCF!

马克