A: 

Things to check:

  • Windows Firewall
  • Your antivirus product's firewall
  • Can you telnet into the port from a remote machine?
  • Is your "server" running under the ASP.NET development server? That will only accept requests from localhosts - you need to self-host the server using ServiceHost or host it under IIS.
Orion Edwards
+1  A: 

I have now switched from wsDualHttpBinding to NetTcpBinding and for some reason, everything is working fine.

I have used this article to help me set up hosting on IIS, and thankully everything is working as expected, with callbacks.

Andreas Grech
+1  A: 

It would help if you posted the server and client configuration settings.

Here's a summary of how the wsDualHttpBinding works from MSDN (emphasise mine):

The WSDualHttpBinding provides the same support for Web Service protocols as the WSHttpBinding, but for use with duplex contracts. WSDualHttpBinding only supports SOAP security and requires reliable messaging. This binding requires that the client has a public URI that provides a callback endpoint for the service. This is provided by the clientBaseAddress attribute. A dual binding exposes the IP address of the client to the service. The client should use security to ensure that it only connects to services it trusts.

This binding can be used to communicate reliably through one or more SOAP intermediaries.

By default, this binding generates a runtime stack with WS-ReliableMessaging for reliability, WS-Security for message security and authentication, HTTP for message delivery, and a Text/XML message encoding.

Jonathan Parker