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