2009-06-23 147 views
12

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

+2

你能解释为什么你需要升级吗? – redsquare 2009-06-23 14:46:02

回答

12

选项1:

  1. 使用当前的ASMX的WSDL,使用svcutil.exe的
  2. 抓住生成的接口生成客户端并创建一个基于该接口

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

选项2:

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

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

8

如果使用BasicHttpBinding为新WCF服务,并实施相同的消息结构中的相同方法,现有的呼叫者应能够调用这个新的WCF服务而不需要任何改变。

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

Marc