2010-01-28 111 views
1

[RUN DOWN]是否可以运行同一个webservice的多个版本?

  • 我需要与嵌入web服务的名称版本信息的Web服务调用。
    EG。 webserviceV1

  • 当我从wsdl生成代理类时,webservice名称被用作类名称。
    我正在使用wsdl.exe工具。

  • 我可以预见到一个新版本的webservice会导致我的代码库不得不支持2套代理类。或者对于使用现有代理类的代码进行重命名。

[我的问题]

  • 我想提出一个解决方案的供应商,让他们提供web服务的多个版本,因为它是早于该项目。

  • 我被告知可能的解决方案是通过不同的端口提供web服务。 然而,我已经尝试过自己,我不知道这是甚至可以通过IIS。

  • 是否可以在同一台机器上同时运行多个版本的webservice?

回答

3

确实有可能。取而代之的附加版本号以Web服务类,将它们放置在不同的虚拟目录:

http://host/services/1.0/service.asmx 
http://host/services/1.3/service.asmx 
http://host/services/2.0/service.asmx 

这样您就可以设计出一个版本控制方案(正常使用分支机构;看到this对一些想法)支持的所有版本同时服务。

至于代码,你可以尝试抽象出一个通用接口背后的服务版本之间的差异(想想AbstractService),然后用它作为特定版本实现的基础(ServiceV1_3)。

Google为这个确切的主题提供了相当不错的结果。

+0

感谢您的及时响应。将尝试学习如何做到这一点。 – 2010-01-28 07:51:14

+0

试过了,它的效果很好。谢谢。 – 2010-01-29 03:45:20

相关问题