将ASMX转换为WCF Web服务

12

我需要将我们的Web服务从ASMX升级到WCF。 如果Web服务的签名保持不变,已经调用ASMX服务的现有客户端是否需要在其端上更改任何内容? 是否有任何方法可以仍然使用WCF但不强制客户端更改任何内容?


2
你能解释一下为什么你“需要”升级吗? - redsquare
2个回答

12

选项1:

  1. 使用当前ASMX的WSDL,使用svcutil.exe生成客户端

  2. 获取生成的接口并创建基于该接口的WCF服务

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

选项2 :

  1. 重构您的ASMX代码。将所有逻辑移动到单独的DLL中。

  2. 创建一个WCF服务并在重构后的DLL中使用逻辑。

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


8
如果您在新的WCF服务中使用BasicHttpBinding,并使用相同的方法和相同的消息结构,则现有的调用者应该能够在不更改其部分的情况下调用此新的WCF服务。
此外,还有一个AspNetCompatibilityRequirements属性,以解决一些潜在的兼容性问题 - 请参阅MSDN文档

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接