title: C# Calling WCF behind DMZ
body: <p>I need to call a WCF service that is behind a DMZ:</p>
  
  <pre><code>WEBDMZ           ..    LANDMZ
  -------------          ------------
  ClientServer     =&gt;    WCF service
  </code></pre>
  
  <p>As there is a firewall between the two it's not possible for the Client to connect to the WCF service. So I need the WCF service to connect to the client and "listen" to connections or create a tunnel somehow. </p>
  
  <p>I feel it must be a very common problem but I haven't been able to find a proper solution yet. And no it's not possible to open a port. The connection have to be initiated by the WCF.</p>
  
  <p>The client is a server and can easily host any MSMQ or other service.</p>
  
  <p>It seems like this problem can also be referred to as "reverse proxy" or "reverse tunnel".</p>
  
  <p>Solution ideas:</p>
  
  <ul>
  <li><p>MSMQ hosted by Client (but I'm afraid if it would just simply be polling all the time and creating a network overhead).</p></li>
  <li><p>A reverse tunnel/proxy?</p></li>
  <li><p>WCF Duplex?</p></li>
  </ul>
  
  <p>I'm looking for the simplest solution, preferably in C# and without 3rd party software. Perhaps there is a WCF configuration that allows for reverse calls?</p>