WCF WebService复制

时间:2011-09-02 11:38:27

标签: .net wcf

我想复制给定的 web-service 以进行模拟。主要思想是新服务实现与现有服务相同的接口(我不以任何方式控制),但具有不同的实际方法实现。那么,我希望能够在某些测试条件下将请求重定向到真实地址或模拟地址,而无需更改配置。这可以在WCF中完成吗?

2 个答案:

答案 0 :(得分:2)

就实际复制服务而言,如果现有服务公开元数据,即WSDL,那么您可以通过基本上执行以下操作来重新创建服务:

  1. 浏览wsdl以及wsdl引用的所有xsd,并将它们全部保存到磁盘。
  2. 使用这些文件,运行wsdl.exe实用程序,将wsdl和xsd传递给它,并使用/ si选项生成服务接口。
  3. 该输出将是一个接口文件(c#文件)
  4. 进入Visual Studio并创建“WCF服务应用程序”的新项目
  5. 将初始Service1(和接口)文件和类重命名为新服务和接口的名称。
  6. 将上面生成的接口代码复制并粘贴到新服务的接口类文件
  7. 在服务类中,使用您想要的任何实现来实现服务方法。 (提示:如果你右键单击文件中的接口名称,你可以使用“实现接口”选项让VS为你存根 - 很好的功能。)
  8. 构建它,你应该准备好了。
  9. 就原始服务和新服务之间的切换而言,我认为一个选项是从客户端引用代码中的不同服务endponts(相对于配置),这样你只需切换一个开关来命中一个服务或另一个......

答案 1 :(得分:0)

  

无需更改配置

那会很麻烦。

您可以使用相同的界面创建服务,然后实现客户端以在您的服务中调用“真实”服务。

然后在每次通话中,您都会执行您想要执行的操作,然后将相同(或更改)的参数转发给实际服务。

但是,您必须将您的客户指向您的服务,而不是真正的服务。也许这部分可以通过使用代理服务器或DNS记录来解决。