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

qnakjoqk  于 2022-11-15  发布在  .NET
关注(0)|答案(9)|浏览(170)

我是.Net的新手,不了解两者的区别。有人能给我指个路吗?

omqzjyyz

omqzjyyz1#

开发ASP.NETWeb服务是为了生成通过使用HTTP上的简单对象访问协议(SOAP)发送和接收消息的应用程序。
WCF用于使.NET Framework应用程序能够与其他软件实体交换消息。默认情况下使用SOAP,但消息可以是任何格式,并可以使用任何传输协议进行传送。
您可以将ASP.NETWeb服务作为WCF服务的子集进行查看。
Here是比较两个框架的链接。

exdqitrt

exdqitrt2#

很容易知道它们的差别。
NET Web方法被称为ASMX [因为文件扩展名](检查4GuysFromRolla关于这一点,他们有一个good tutorial
这种技术让你把功能公开为Web服务,这样你就可以从任何地方连接它并使用它。但是......你不能保护服务器和客户端之间的数据,你可以清楚地发送大文件并知道发生了什么,等等......
[注]您可以使用证书保护对Web服务的访问,但这很复杂,但通常在ASMX中我们使用用户名/密码。
在WCF中,您将置身于Web服务的另一个世界,而这是.NET中公开服务的最佳技术(* 您能看出区别吗...*服务!而不是Web服务),WCF不需要IIS即可运行,它可以作为系统服务在服务器上运行,使用控制台环境(像命令行)等,所以我们说WCF是一个服务而不是Web服务。记住ASMX需要IIS才能运行。
通过WCF,您可以使用SSL对通信进行加密(在ASMX中,您需要使用WSE- Web服务增强功能),您可以安全地发送大文件(在ASMX中,您需要使用MTOM-消息传输优化机制)。
你可以设置传输首选项只需改变一行代码,安全性要高得多,等等:)
希望你能得到一个更好的总体概述与此,但有更多。
底线:要公开您不需要保护的Web服务,您可以使用ASMX,这完全没有问题,但如果您需要以某种方式保护通信,请在WCF中执行此操作!

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

xnifntxz

xnifntxz3#

它们是两种不同的编写服务的框架。WCF通常更灵活,并提供了可配置的选项,用于使用什么协议、如何托管服务以及各种安全选项。ASMX提供基于SOAP的服务。通常WCF也更performant。通常ASMX更易于使用,学习曲线也更短。
Here是MSDN论坛中有关该主题的讨论。以下是ASMXWCF的入门页面。

nhn9ugyo

nhn9ugyo4#

除了上述响应之外,创建WCF是为了在.NET 3.0及更高版本中取代.NET Remoting。除了各种格式(例如XML和JSON)的SOAP、REST、POX等Web服务之外,WCF还提供MSMQ和命名管道。如上所述,ASMX仅提供基于SOAP的XML Web服务。
您需要深入研究.NET Remoting以了解其他类型的通信协议。有关更多信息,您应该查看Pro C# 2008 and the .NET 3.5 Framework。这是一个很好的资源,您可以从以前的书籍中获得介绍.NET远程处理和其他替代功能的章节。

k3bvogb1

k3bvogb15#

这里有一个新的、巨大的区别:Microsoft现在将ASMX Web服务视为“旧版”技术。请参阅“XML Web Services Created Using ASP.NET and XML Web Service Clients“。

k0pti3hp

k0pti3hp6#

网络服务
1.只能通过HTTP访问
1.它在无状态环境中工作
周转基金
WCF非常灵活,因为它的服务可以承载在不同类型的应用程序中。下面列出了承载WCF服务的几种常见方案:

  • 互联网信息服务
  • 过去
  • 自托管
  • 托管Windows服务
krcsximq

krcsximq7#

WCF是一个更通用的框架,通过它可以编写一个服务类型组件,并以多种方式部署它(甚至作为Asp.NetWeb服务)。
这里有一个关于http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/2d6a7ff2-f15c-4599-a389-a81cfffcc852/的简短主题

mhd8tkvw

mhd8tkvw8#

我也有同样的问题。
我发现这本书Microsoft Windows Communication Foundation Step by Step真的很好。
如果您 * 只是 * 想使用WCF做传统的Web服务,那么本书的第1章将向您展示如何做(编写服务、测试、部署、使用服务)。
它是为VS2005编写的,但我使用的是VS2008,发现它更容易。
WCF还有很多内容,但这本书是一个很好的开始。

h7wcgrx3

h7wcgrx39#

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

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

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

WCF:Windows Communication Foundation(代号为靛蓝)是一个编程平台与运行时系统,用于构建,配置与部署网络分布式服务.

1)[ServiceContract]和[OperationContract]属性定义Web服务和方法。
2)通过HTTP、TCP、MSMQ、P2P、命名管道访问
3)托管在IIS、自托管、WAS和Windows服务中。
4)可以通过服务行为类进行多线程处理。
5)System.runtime.Serialization命名空间用于序列化
6)支持不同类型的绑定,如BasicHttpBinding、WSHHttpBinding、WSDualHttpBinding等。
7)支持安全服务、可靠的消息传递、事务、 AJAX 和REST支持

相关问题