您是否可以将Web服务调用一般性地传递给另一台服务器?

时间:2009-03-19 13:51:06

标签: c# asp.net web-services iis-6

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

我希望有一台位于它们之间的服务器将这些Web服务请求路由到另一台服务器。

我开始编写一个.net Web服务应用程序,它反映了每个可能的Web服务调用的签名,但这似乎不太实用,并且只要签名发生变化就需要更新。

内置的IIS转发似乎没有做我想要的,因为它只是将调用重定向到另一台机器,这不是我想要的。

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

我是否有任何选项可以将Web服务调用一般转发到另一台服务器?

- 编辑 -

回答有关此问题的一些问题:

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

我在上面提到的这种架构的“各种其他原因”是因为我正在与一家儿童公司打交道,该公司通过安全的VPN访问我们网络的一小部分。该子公司根本无法直接访问子域。但是,他们确实需要访问子域中服务器上的Web服务。他们解决这个问题的方法是让服务器与他们的服务器以及子域中的服务器进行通信。

4 个答案:

答案 0 :(得分:2)

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

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

我很困惑为什么你需要这样做?

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

<强>更新

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

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

相同的架构适用不是吗?

答案 1 :(得分:1)

WCF支持WS-Addressing。查看how to setup a WCF router上的MSDN。

答案 2 :(得分:0)

WCF具有路由功能,WCF将SOAP over HTTP称为ASP.NET WebServices。 所以也许search for "WCF routing" in google会给你一些有用的信息......

答案 3 :(得分:0)

我认为你真正想要的是Proxy Server。微软有他们自己的产品叫Microsoft Internet Security & Acceleration (ISA) Server,但你可能会找到一个免费/开源的产品来处理你相当简单的要求。

虽然我同意Charles并且不明白为什么你需要这样做?

千电子伏