【发布时间】:2009-06-23 03:04:20
【问题描述】:
我需要升级我们的 Web 服务以使用 WCF 而不是 ASMX。如果 Web 服务的签名保持不变,那么已经调用 ASMX 服务的现有客户端是否必须对其进行任何更改?无论如何仍然使用 WCF 但不强迫他们改变任何东西?
【问题讨论】:
-
您能解释一下为什么“需要”升级吗?
标签: wcf
我需要升级我们的 Web 服务以使用 WCF 而不是 ASMX。如果 Web 服务的签名保持不变,那么已经调用 ASMX 服务的现有客户端是否必须对其进行任何更改?无论如何仍然使用 WCF 但不强迫他们改变任何东西?
【问题讨论】:
标签: wcf
选项 1:
使用当前ASMX的WSDL,使用svcutil.exe生成客户端
抓取生成的接口,并基于该接口创建WCF服务
输出:一个使用 basicHttpBinding 配置的新 WCF 端点。客户端需要更新他们发送消息的 URL。
选项 2:
重构您的 ASMX 代码。将所有逻辑移到单独的 DLL 中。
创建 WCF 服务并使用重构的 DLL 中的逻辑。
输出:2 个端点,一个用于 ASMX,另一个用于 WCF
【讨论】:
如果您将BasicHttpBinding 用于新的 WCF 服务,并使用相同的消息结构实现相同的方法,则现有调用者应该能够调用这个新的 WCF 服务而无需对其进行任何更改。
还有一个 AspNetCompatibilityRequirements 属性可以解决一些潜在的兼容性问题 - 请参阅上面的 MSDN documentation。
马克
【讨论】: