C#在DMZ后面调用WCF

时间:2013-05-21 18:16:01

标签: c# wcf web-services msmq tunnel

我需要调用DMZ背后的WCF服务:

WEBDMZ           ..    LANDMZ
-------------          ------------
ClientServer     =>    WCF service

由于两者之间存在防火墙,因此客户端无法连接到WCF服务。所以我需要WCF服务连接到客户端并“监听”连接或以某种方式创建隧道。

我觉得这一定是一个非常普遍的问题,但我还没有找到合适的解决方案。不,不可能打开一个端口。连接必须由WCF启动。

客户端是服务器,可以轻松托管任何MSMQ或其他服务。

似乎这个问题也可以称为“反向代理”或“反向隧道”。

解决方案的想法:

  • 由客户托管的MSMQ(但我担心它只是一直只是轮询并创建网络开销)。

  • 反向隧道/代理?

  • WCF Duplex?

我正在寻找最简单的解决方案,最好是在C#中,没有第三方软件。也许有一个允许反向调用的WCF配置?

1 个答案:

答案 0 :(得分:1)

使用.Net版本4,您可以在here查看WCF路由服务。或者您可以按照Michele Leroux的示例自己构建路由服务。这是link

修改

您可以构建路由服务,将其放在WEBDMZ服务器上,它将包含放置在DMZ服务器上的端点wcf服务列表。在这里,它将充当服务服务器以及客户端连接到DMZ服务器上的服务。您还可以构建发现服务以自动配置这些端点。