c#在DMZ后面调用WCF

本文关键字:调用 WCF DMZ | 更新日期: 2023-09-27 18:14:54

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

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

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

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

客户端是一个服务器,可以很容易地托管任何MSMQ或其他服务。

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

解决方案的想法:

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

  • 反向隧道/代理?

  • WCF双吗?

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

c#在DMZ后面调用WCF

在。net版本4中,你可以在这里查看WCF路由服务。或者你可以按照Michele Leroux的例子自己构建一个路由服务。这是链接。

编辑:

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