WCF push to client through firewall?

Posted by Sire on Stack Overflow See other posts from Stack Overflow or by Sire
Published on 2008-08-22T13:27:53Z Indexed on 2010/03/23 7:33 UTC
Read the original article Hit count: 736

Filed under:
|
|
|
|

See also How does a WCF server inform a WCF client about changes? (Better solution then simple polling, e.g. Coment or long polling)

I need to use push-technology with WCF through client firewalls. This must be a common problem, and I know for a fact it works in theory (see links below), but I have failed to get it working, and I haven't been able to find a code sample that demonstrates it.

Requirements:

  • WCF
  • Clients connects to server through tcp port 80 (netTcpBinding).
  • Server pushes back information at irregular intervals (1 min to several hours).
  • Users should not have to configure their firewalls, server pushes must pass through firewalls that have all inbound ports closed. TCP duplex on the same connection is needed for this, a dual binding does not work since a port has to be opened on the client firewall.
  • Clients sends heartbeats to server at regular intervals (perhaps every 15 mins) so server knows client is still alive.
  • Server is IIS7 with WAS.

The solution seems to be duplex netTcpBinding. Based on this information:

WCF through firewalls and NATs

Keeping connections open in IIS

But I have yet to find a code sample that works.. I've tried combining the "Duplex" and "TcpActivation" samples from Microsoft's WCF Samples without any luck. Please can someone point me to example code that works, or build a small sample app. Thanks a lot!

© Stack Overflow or respective owner

Related posts about .NET

Related posts about wcf