将ASMX转换为WCF Web服务

use*_*673 12 wcf

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

use*_*155 12

选项1 :

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

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

选项2:

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

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


mar*_*c_s 8

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

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