IT技术互动交流平台

Web服务(ASMX Web Service)与WCF服务(Windows Communication Foundation Service)

作者:OnClick   发布日期:2012-12-23 17:16:37
之前偶尔使用WCF﹐也只是将它当做原本ASP.NET传统的Web service(ASMX web service)使用﹐并没有实际去了解WCF和web service的区别﹐也不曾去深入为什么要使用WCF。最近想把web service加上使用者验证﹐打算采用SOAP Header的方式﹐这才好好的看了一下WCF和web service的不同﹐发现光安全性上就有许多的差异性。这次的笔记主要是在WCF自订使用者认证﹐不过同时把研究过程中得到的知识一并记录下来。
WCF提供有多种的认证技术﹐Windows认证﹑X.509凭证﹑使用者账号/密码认证...等。以现行的生态都是跨平台系统﹐因此Windows认证方式并不是很适合﹐因此选用自订使用者账号/密码的认证方式。
 
Web服务(ASMX Web Service)WCF服务(Windows Communication Foundation Service)比较

微软在ASP.NET 1.0就开始支持Web Service﹐并且微软所提供的Web Service加上IIS在开发上与使用上非常便利﹐WCF相对起来就有比较多的眉角和门坎。现今web service仍是许多ASP.NET开发者所使用﹐那么为什么要有WCF?WCF是不是可以完全取代web service?有一篇讨论写的不错﹐可以参考一下。(http://social.msdn.microsoft.com/Forums/zh-CN/wcfzhchs/thread/c06420d1-69ba-4aa6-abe5-242e3213b68f) www.it165.net
微软于.Net 3.0时开始导入WCF﹐希望能让开发人员逐步取代原有的Web服务开发﹐然而在推出.Net 4.0开始 visual studio 2010其预设的网站项目中已见不到Web服务(但并非消失)﹐因为WCF的推出﹐微软将Web Service的发展重心移到WCF上﹐原有的ASP.NET Web Service给了另一个名称ASMX Web Service﹐那么原有的Web服务与WCF到底有什么不同﹐为什么微软希望用WCF来取代Web服务。
  Web服务 WCF服务
.Net 版本 1.1或更高版本 3.5或更高版本
功能 必须安装WSE之后才比较完整支持WS-* 完整﹐本身已实作WS-*的功能。
安全性控管 弹性﹐可单独一个网站﹐也可直接建置于已存在的网站中。 弹性﹐可单独一个网站﹐也可直接建置于已存在的网站中。

什么是WS-*规格﹐WS-*是许多的Web服务相关的规范﹐由不同的标准组织或机构来维护和支持。不同的标准或互相补充﹐或重迭﹑或互相竞争。这些规范没有公认的统一所属机构﹐因为都是以WS-为开头﹐统称WS-*。这些Web服务规范通常都是难以实作的部分﹐比较重要的像是以下的规格
WS-Security 描述了如何将签名和加密头加入SOAP消息﹐如何在讯息中加入token。亦即与身份验证有关﹐及加密签章的处理。
WS-ReliableMessaging 可靠消息模型﹐确保讯息至少一次﹐至多一次﹐正好一次。
WS-Addressing 实际包含两个新概念:端点引用(endpoint reference, EPR)和SOAP结构的消息信息(message information, MI)头。
WS-Trust 对WS-Security规范的一些扩充﹐专门处理有关安全tokens的发布﹐整新和验证﹐确保各方参与者的相互操作在一个可信任的安全数据交换环境中。
WS-Federation 跨网域单点登录认证
WS-AtomicTransaction 一种互通的交易通讯协议﹐做为异质平台﹑跨internet的分布式交易。

WS-*的规范除了上述提到的之外﹐仍陆续增加当中。ASP.NET Web服务本身不支持WS-*﹐必须加装WSE﹐才能支持。目前可以安装的WSE最新版本为WSE 3.0 (http://www.microsoft.com/download/en/details.aspx?id=14089)﹐WSE 3.0后续并不会再增加和更新﹐也就是WSE 3.0是末代版本﹐微软希望未来大家改用WCF开发。WCF已实作WS-*的规格﹐功能性比Web服务完整。WCF所支持的WS-*的通讯协议﹐可参考http://msdn.microsoft.com/zh-tw/library/ms730294.aspxhttp://msdn.microsoft.com/zh-tw/library/ms730879.aspx﹐的资料。
 
微软除了Web服务与WCF服务﹐另外还有WCF RIA Service与WCF数据服务的服务器端服务。
WCF RIA Service .Net 3.5以上版本支持
Silverlight专用﹐可用于Silverlight网页与Windows Phone 7.x。
WCF数据服务 .Net 3.5以上版本支持
前身为ADO.NET Data Service﹐不过与ADO.NET完全无关。
可以提供服务也可以提供数据模型﹐内建REST ful接口。
只可以使用ADO.NET实体数据模型。
 
Tag标签: Web服务   WCF服务  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规