【发布时间】:2013-05-16 14:53:21
【问题描述】:
我需要调用 DMZ 后面的 WCF 服务:
WEBDMZ .. LANDMZ
------------- ------------
ClientServer => WCF service
由于两者之间有防火墙,客户端无法连接到 WCF 服务。所以我需要 WCF 服务连接到客户端并“监听”连接或以某种方式创建隧道。
我觉得这一定是一个非常普遍的问题,但我还没有找到合适的解决方案。不,不可能打开一个端口。连接必须由 WCF 发起。
客户端是一个服务器,可以轻松托管任何 MSMQ 或其他服务。
似乎这个问题也可以称为“反向代理”或“反向隧道”。
解决方案:
由客户端托管的 MSMQ(但恐怕它只是一直在轮询并产生网络开销)。
反向隧道/代理?
WCF 双工?
我正在寻找最简单的解决方案,最好是使用 C# 并且没有第三方软件。也许有允许反向调用的 WCF 配置?
【问题讨论】:
-
我已经使用 Azure 服务总线解决了这个问题,但那是第 3 方工具。无需打开任何端口,服务有保障,有协议升级(又名直连)的可能性。
标签: c# wcf web-services msmq tunnel