asp.net web方法和wcf服务之间有什么区别?

asp.net web方法和wcf服务之间有什么区别?,asp.net,wcf,web-services,asmx,Asp.net,Wcf,Web Services,Asmx,我是.Net新手,不了解其中的区别。有人能给我指出正确的方向吗?它们是两种不同的服务编写框架。WCF通常更灵活,并为使用何种协议、如何托管服务以及各种安全选项提供可配置选项。ASMX提供基于SOAP的服务。一般来说,WCF也更具吸引力。一般来说,ASMX更易于使用,而且学习曲线也较少 是一个MSDN论坛讨论的主题。 以下是和的入门页。ASP.NET Web服务是为构建通过HTTP使用简单对象访问协议(SOAP)发送和接收消息的应用程序而开发的 WCF用于使.NET Framework应用程序能够

我是.Net新手,不了解其中的区别。有人能给我指出正确的方向吗?

它们是两种不同的服务编写框架。WCF通常更灵活,并为使用何种协议、如何托管服务以及各种安全选项提供可配置选项。ASMX提供基于SOAP的服务。一般来说,WCF也更具吸引力。一般来说,ASMX更易于使用,而且学习曲线也较少

是一个MSDN论坛讨论的主题。
以下是和的入门页。

ASP.NET Web服务是为构建通过HTTP使用简单对象访问协议(SOAP)发送和接收消息的应用程序而开发的

WCF用于使.NET Framework应用程序能够与其他软件实体交换消息。默认情况下使用SOAP,但是消息可以采用任何格式,并且可以使用任何传输协议进行传输

您可以将ASP.NET web服务视为WCF服务的子集


是比较两个框架的链接。

它们是两个不同的东西。WCF是一个更通用的框架,通过它,您可以编写一个服务类型组件并以多种方式部署它(甚至可以作为Asp.NETWeb服务)


这里有一条关于这一点的简短线索

很容易知道区别

ASP.NET Web方法被称为ASMX[因为文件扩展名](检查4GuysFromRolla关于这一点,他们有一个)

这项技术使您可以将函数公开为Web服务,这样您就可以随时随地连接并使用它。但是您无法保护服务器和客户端之间的数据,您可以发送大文件并清楚地知道发生了什么,等等

[注意]您可以使用证书保护对web服务的访问,但这很复杂,但通常在ASMX中我们使用用户名/密码

在WCF中,您对Web服务有着不同的认识,这是.NET中公开服务的最佳技术(您能看到区别吗…服务!而不是Web服务),WCF不需要IIS来运行,它可以在服务器上作为系统服务运行,使用控制台环境(如命令行),等等,所以我们说WCF是一个服务而不是Web服务。请记住,ASMX需要IIS才能运行

使用WCF,您可以使用SSL对通信进行加密(要在ASMX中进行加密,您需要使用WSE
-Web服务增强),您可以安全地发送大文件(要在ASMX中进行加密,您需要使用MTOM-Message Transmission Optimization Mechanism)

您只需更改一行代码即可设置传输首选项,安全性更高,等等:)

希望您能从中获得更好的总体概述,但还有更多

一句话:要公开不需要保护的Web服务,可以使用ASMX,一点问题都没有,但是如果需要以某种方式保护通信,请在WCF中进行


链接

除了上述响应,创建WCF是为了取代.NET 3.0及更高版本中的.NET远程处理。除了SOAP、REST、POX等各种格式(如XML和JSON)的web服务外,WCF还提供MSMQ和命名管道。如上所述,ASMX只提供基于SOAP的XML web服务


您需要深入研究其他类型的通信协议。如需更多信息,请查看。这是一个很好的资源,您可以从以前的书籍中获得有关.NET远程处理和其他替代功能的章节。

我也有同样的问题

我发现这本书真的很好

如果您只想使用WCF做传统的Web服务,那么本书的第1章将向您详细介绍如何做(编写服务、测试、部署、使用服务)

它是为VS2005编写的,但我使用vs2008,发现它更简单


WCF还有很多,但这本书是一个好的开始。

这里有一个新的、巨大的区别:微软现在认为ASMX web服务是“遗留”技术。请参阅“”

Web服务

  • 它只能通过HTTP访问
  • 它在无状态环境中工作
  • 周转基金

    WCF是灵活的,因为它的服务可以托管在不同类型的应用程序中。以下列出了承载WCF服务的几种常见方案:

    • 非法移民
    • 自托管
    • 托管Windows服务

      • 下面列出了Web服务和WCF之间的主要区别

        Web服务:Web服务是一种设计用于通过internet直接与其他应用程序交互的应用程序

        1) [WebService]和[WebMethod]属性定义了web服务和方法。
        2) 它只能通过HTTP访问。
        3) 托管在IIS中。
        4) 支持安全服务。
        5) 不能是多线程的。
        6) 仅使用Soap或XML。
        7) System.Xml.serialization名称空间用于序列化

        <强> WCF :Windows通信基础(代码名为INDIGO)是一个用于构建、配置和部署网络分布式服务的编程平台和运行时系统。 1) [ServiceContract]和[OperationContract]属性定义web服务和方法。
        2) 通过HTTP、TCP、MSMQ、P2P、命名管道访问
        3) 托管在IIS、自托管、WAS和Windows服务中。
        4) 可以通过服务行为类进行多线程处理。
        5) System.Runtime.Serialization命名空间用于序列化
        6) 支持不同类型的绑定,如BasicHttpBinding、WSHttpBinding、WSDualHttpBinding等。


        7) 支持安全服务、可靠的消息传递、事务、AJAX和REST支持

        +1正如您之前在其他文章中提到的,这是一个重要的观点。本文的标题:“此主题特定于遗留技术。XML Web services和XML我们