ASP.NET Web服务与WCF服务

时间:2010-04-20 12:27:24

标签: .net asp.net wcf

场景:我有一个现有的https ASP.NET站点,我将添加一些新的远程服务。这些服务提供的计算需要通过站点上的AJAX方法和.NET桌面应用程序进行调用。

我一直在使用ASP.NET WebServices(标有ScriptService属性)来完成此任务。我刚刚发现了WCF。

根据我的理解,在这种情况下,WCF服务在普通的旧.NET Web服务上提供的主要功能似乎是能够通过Message Queue和COM +等各种其他通信渠道进行连接。我从来没有看到这个项目发生过这种情况。

那么告诉我,为什么我应该考虑WCF?

2 个答案:

答案 0 :(得分:4)

即使您目前没有计划添加不同的服务端点,也不应该将其排除在外。你永远不知道有什么人可能需要在路上。

也就是说,如果.NET Web服务满足您的需求,并且您不需要WCF添加的额外好处(简单的端点交换,更紧密集成的标准安全性等),那么请不要同时使用它。

如果您的代码正常运行并完成工作,那么仅仅为了表示您使用它而在新技术上投入时间真的没有意义。等待调查WCF,直到你确实需要它提供的功能。

答案 1 :(得分:4)

WCF提供了一个非常可定制的平台;几乎任何WCF堆栈的部分都可以用您自己的自定义组件替换。改变通信协议只是冰山一角。这种设计可以完成ASP.NET Web服务无法轻松完成的任务。

例如,我最近写了一个审计组件,它侦听WCF服务或客户端上的请求 - 回复传输,并将它们全部写入审计数据库。 WCF为消息拦截器提供扩展点,以便在它们仍然是XML时访问消息并对它们执行操作。因此,我只写了100行代码来完成我想要的。

使用WCF的支持理由是工具。开箱即用,WCF提供了更好的测试,配置和诊断服务的工具。除此之外,作为.NET服务的首选解决方案,现在有许多专门针对WCF平台的工具和实用程序。

WCF完全取代ASP.NET Web服务。我建议.NET服务中的所有新工作都应该尽可能在WCF中完成。是否应该将现有项目迁移到WCF是另一回事,其中WCF的好处需要超过替换功能解决方案的成本。