我需要将我们的Web服务从ASMX升级到WCF。 如果Web服务的签名保持不变,已经调用ASMX服务的现有客户端是否需要在其端上更改任何内容? 是否有任何方法可以仍然使用WCF但不强制客户端更改任何内容?
我需要将我们的Web服务从ASMX升级到WCF。 如果Web服务的签名保持不变,已经调用ASMX服务的现有客户端是否需要在其端上更改任何内容? 是否有任何方法可以仍然使用WCF但不强制客户端更改任何内容?
选项1:
使用当前ASMX的WSDL,使用svcutil.exe生成客户端
获取生成的接口并创建基于该接口的WCF服务
输出: 配置了basicHttpBinding的一个新的WCF端点。客户端需要更新发送消息的URL。
选项2 :
重构您的ASMX代码。将所有逻辑移动到单独的DLL中。
创建一个WCF服务并在重构后的DLL中使用逻辑。
输出: 两个端点,一个用于ASMX,另一个用于WCF。
BasicHttpBinding
,并使用相同的方法和相同的消息结构,则现有的调用者应该能够在不更改其部分的情况下调用此新的WCF服务。AspNetCompatibilityRequirements
属性,以解决一些潜在的兼容性问题 - 请参阅MSDN文档。