我是.Net的新手,并不了解其中的差别.有人能指出我正确的方向吗?
ASP.NET Web服务是为构建通过HTTP使用简单对象访问协议(SOAP)发送和接收消息的应用程序而开发的.
WCF用于使.NET Framework应用程序与其他软件实体交换消息.默认情况下使用SOAP,但消息可以采用任何格式,并使用任何传输协议传送.
您可以将ASP.NET Web服务视为WCF服务的子集.
这是一个比较两个框架的链接.
知道这些差异很容易.
ASP.NET Web方法被称为ASMX [因为文件扩展名](关于这个,检查4GuysFromRolla,他们有一个很好的教程)
该技术使您将功能公开为Web服务,因此您可以从任何地方连接它并使用它.但是...... 你无法保护服务器和客户端之间的数据,你可以清楚地发送大文件,知道发生了什么等等......
[注意]您可以使用证书保护对Web服务的访问,但它很复杂,但通常在ASMX中我们使用username/passsword.
在WCF中,你处于Web服务的不同世界,这是.NET中用于公开服务的最佳技术(你能看到差异...... 服务!而不是Web服务),WCF不需要运行IIS,它可以使用控制台环境(如命令行)等在服务器上作为系统服务运行,因此我们说WCF是服务而不是Web服务.请记住,ASMX需要运行IIS.
使用WCF,您可以使用SSL加密通信(要在ASMX中执行此操作,您需要使用WSE - Web服务增强功能),您可以安全地发送大文件(要在ASMX中执行此操作,您需要使用MTOM - 消息传输优化机制) ).
您可以设置传输首选项只需更改一行代码,安全性更高等,等等:)
希望你能得到一个更好的概述,但还有更多.
底线:要公开您不需要保护的Web服务,您可以使用ASMX,完全没问题,但如果您需要以某种方式保护通信,请在WCF中进行!
链接:你可以在这里阅读这两项服务之间的一些性能比较
它们是用于编写服务的两种不同框架.WCF通常更灵活,并为使用的协议,托管服务的方式和各种安全选项提供可配置选项.ASMX提供基于SOAP的服务.通常,WCF也更高效.通常,ASMX更易于使用,并且通常具有较少的学习曲线.
这是关于该主题的MSDN论坛讨论.以下是ASMX和WCF的入门页面.
除了上述响应之外,还创建了WCF以取代.NET 3.0及更高版本中的.NET Remoting.除了各种格式的SOAP,REST,POX等Web服务(例如XML和JSON)之外,WCF还提供MSMQ和命名管道.如上所述,ASMX仅提供基于SOAP的XML Web服务.
您需要深入研究.NET Remoting以获取其他类型的通信协议.有关其他信息,请查看Pro C#2008和.NET 3.5 Framework.这是一个很好的资源,您可以从以前的书籍中获取.NET Remoting和其他替换功能的章节.