.net WCF Web服务复制

.net WCF Web服务复制,.net,wcf,.net,Wcf,我想复制一个给定的web服务以进行模拟。其主要思想是,新服务实现与现有服务相同的接口(我不以任何方式控制该接口),但使用不同的实际方法实现。然后,我希望能够在某些测试条件下将请求重定向到真实地址或模拟地址,而无需更改配置。这可以在WCF中实现吗 无需更改配置 那太麻烦了 您可以创建一个具有相同接口的服务,然后实现一个客户端,用于调用服务中的“真实”服务 然后,在每次调用中,您都会执行您想要执行的操作,然后使用相同(或更改的)参数将请求转发到实际服务 但是你必须让你的客户指向你的服务,而不是真正的

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

无需更改配置

那太麻烦了

您可以创建一个具有相同接口的服务,然后实现一个客户端,用于调用服务中的“真实”服务

然后,在每次调用中,您都会执行您想要执行的操作,然后使用相同(或更改的)参数将请求转发到实际服务


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

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

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