将ASMX转换为WCF Web服务

时间:2009-06-23 03:04:20

标签: wcf

我需要升级我们的Web服务以使用WCF而不是ASMX。如果Web服务的签名保持不变,那么已经调用ASMX服务的现有客户端是否必须更改任何内容?反正仍然使用WCF但不强迫他们改变任何东西吗?

2 个答案:

答案 0 :(得分:12)

选项1:

  1. 使用当前的ASMX的WSDL,使用svcutil.exe生成客户端
  2. 抓取生成的界面并基于此界面创建WCF服务

    输出:使用basicHttpBinding配置的一个新WCF端点。客户需要更新他们发送消息的URL。

  3. 选项2:

    1. 重构您的ASMX代码。将所有逻辑移动到单独的DLL中。
    2. 创建WCF服务并使用重构DLL中的逻辑。

      输出:2个端点,一个用于ASMX,另一个用于WCF

答案 1 :(得分:8)

如果您使用BasicHttpBinding作为新的WCF服务,并使用相同的消息结构实现相同的方法,那么现有的调用者应该能够调用这个新的WCF服务而不需要对其进行任何更改。

还有一个AspNetCompatibilityRequirements属性可以解决一些潜在的兼容性问题 - 请参阅上面的MSDN documentation

马克