【问题标题】:Migrating to WCF from ASP.Net 2.0 web services从 ASP.Net 2.0 Web 服务迁移到 WCF
【发布时间】:2009-03-20 15:18:23
【问题描述】:

我目前有一套在 ASP.Net 2.0 中开发的 .Net Web 服务。它们不使用任何 WS-E 扩展,而是在应用程序级别实现安全性。它们是相当简单的数据检索/更新功能。我有兴趣随着时间的推移逐渐将这些 Web 服务重构为 WCF 服务,主要是为了让它们在未来防止旧框架版本被弃用。 我主要关心的是需要在客户端应用程序中完成的重新编码量以重新连接这些服务。

  1. 有人已经走这条路了吗?
  2. 值得吗?
  3. 您能否推荐一些我可以用来继续我在该领域研究的阅读材料?

【问题讨论】:

    标签: asp.net wcf web-services


    【解决方案1】:

    您的担忧是有道理的。我一直在采取“如果它没有损坏,就不要修复它”的方法,并让现有的“遗留”Web 服务单独处理,直到它们需要工作为止。对于新的开发,我们一直在采用 WCF 来解决大大小小的通信问题。如果您有一个很好的干净对象模型,那么最明显的好处是易于集成。最明显的负面影响是(相对而言)还有更多令人头疼的配置问题,尤其是当您开始尝试保护事物时。

    我觉得你提到 WS-* 规范很有趣,因为这是我们在将 WCF 与 Java 系统集成时遇到的最大问题。安全功能现在完全缺失,我们最终使用 Microsoft.Web.Services3 (WSE3) 来处理 .NET 方面的一部分。

    我强烈推荐reading through these articles,即使您现在不使用 WCF 进行安全保护,您也可能在某个时候不得不这样做。

    【讨论】:

    • 您能否详细说明 WCF 缺少哪些安全功能?我根本不知道它缺少任何东西。
    • 特别是在处理自定义绑定上的 UsernameToken 时,我们找不到将 MustUnderstand 设置为 false 的方法。经过几天对 WCF 的故障排除后,我们发现 WSE3 开箱即用地支持这一点,并且只是出于对项目计划的尊重而使用它。
    【解决方案2】:

    很有可能您的客户根本不需要改变。

    在服务器端,我最近看到一个 ASMX 服务变成了 WCF 服务,只需将 [ServiceContract] 放在 [WebService] 类上,将 [OperationContract] 放在 [WebMethod] 方法上,然后将它返回到 [DataContract] 和 [DataMember] 的非原始类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多