1

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

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

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

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

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

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

解决思路:

  • 由客户端托管的 MSMQ(但恐怕它只是一直在轮询并产生网络开销)。

  • 反向隧道/代理?

  • WCF 双工?

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

4

1 回答 1

1

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

编辑:

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

于 2013-05-23T05:03:37.893 回答