代码之家  ›  专栏  ›  技术社区  ›  AaronS

您能一般地将Web服务调用传递给另一个服务器吗?

  •  3
  • AaronS  · 技术社区  · 16 年前

    我有两个服务器,一个在单独的域中,另一个在主域中,需要来回传递Web服务调用。出于安全和其他各种原因,我不希望这些机器直接互相交谈。

    我想要一个位于它们之间的服务器,将这些Web服务请求路由到另一个服务器。

    我开始编写一个.NET Web服务应用程序,该应用程序镜像每个可能的Web服务调用的签名,但这似乎不太实际,需要在签名更改时进行更新。

    内置的IIS转发看起来不像我想要的那样做,因为它只是将调用重定向到另一台计算机,而这不是我想要的。

    这些Web服务正在将序列化的.NET对象作为输入/输出参数传递。

    我是否可以选择将Web服务呼叫一般转发到其他服务器?

    -编辑-

    要回答有关此需求的一些问题:

    当我说它是DMZ时,我错了,我应该说它只是一个单独的域。我用这个更新了问题。

    对于这个架构,我上面提到的“其他各种原因”是因为我正在处理一个通过安全的VPN访问我们网络的小部分的子公司。此子公司完全没有直接访问子域的权限。但是,它们确实需要访问子域中服务器上的Web服务。我解决这个问题的方法是拥有一个可以与他们的服务器以及子域中的服务器通信的服务器。

    4 回复  |  直到 16 年前
        1
  •  1
  •   Pontus Gagge    16 年前

    WCF支持 WS-Addressing . 查看上的msdn how to setup a WCF router .

        2
  •  2
  •   Charlie    16 年前

    从架构上讲,这是一种冗余。您应该在防火墙上实现任何安全性。

    应该允许您的Web服务(位于DMZ中)通过防火墙上适当安全的端口执行所需的操作。

    我不明白你为什么要这么做?

    如果没有更多关于不允许两台机器直接对话的安全原因的详细信息,或者没有更多关于这两个Web服务为什么需要在彼此之间传递相同功能的调用的详细信息,似乎很难提供帮助。

    更新

    因此,您可以让子公司在适当配置的Web服务上调用函数(见上文),该服务位于核心域的DMZ中。

    这样,他们就不需要访问子域,因为Web服务将调用您的域,而不是子域用户本身。

    同样的架构也适用,不是吗?

        3
  •  0
  •   Arjan Einbu    16 年前

    WCF具有路由能力,并且WCF以ASP.NET Web服务的形式通过HTTP说SOAP。 所以也许 search for "WCF routing" in google 会给你一些有用的信息…

        4
  •  0
  •   Community CDub    8 年前

    我想你真正想要的是 Proxy Server . 微软有自己的产品 Microsoft Internet Security & Acceleration (ISA) Server 但是您可能会找到一个免费/开源的产品来满足您相当简单的需求。

    虽然我有点同意 Charles 不明白你为什么要这么做?

    千电子伏