我有一个用ASP.NET开发的Web服务,它在2个不同的主机中运行。现在,我需要将某些调用(取决于用户数据库中存储的设置)从一个主机重定向到另一个主机。只需要重定向某些调用,而我不能修改正在调用Web服务的客户端,因此它必须对他们透明。任何想法如何进行?
编辑:这是SOAP服务(asmx)。客户端是在Visual Studio中开发的android和IOS应用。
答案 0 :(得分:0)
由于您的要求包括从数据库中读取数据,并根据用户的身份进行选择,因此很明显,即使在从服务A重定向到服务B的情况下,服务A也必须至少执行< em> some 工作,然后重定向。
由于无论如何都会发生这种情况,所以也许最简单的事情就是在必要时直接从服务A调用服务B。换句话说,只要将服务A设为服务B的客户端即可。请注意,这实际上不会重定向到B,而是 forward 在那里调用,这意味着响应来自B的信息也必须经过A。
PS:我假设服务A和B基本相同,但是它们可以访问某种类型的不同资源(例如,可以访问不同的数据库?)。您明确指定只需要从一个主机中重定向,但是如果您通过允许服务的每个实例作为同一服务的另一个实例的客户端来解决问题,则可以这样做可配置,那么您可以在必要时让它们彼此重定向。您可能暂时不需要它,但是将来它可能是一个有用的选择,并且可能也不会造成任何额外的开销。