DualHttpBinding требует, чтобы два клиента могли открывать соединения и отправлять сообщения друг другу. Скорее всего, один из клиентов находится за брандмауэром, который не может принимать входящие соединения, маршрутизатором NAT, который не перенаправлен через порт, или у другого клиента просто нет правильного адреса для его поиска.
Этот вид прямой двусторонней связи по HTTP очень трудно понять, как только вы попадете в Интернет. Чтобы отладить его, я бы посоветовал взглянуть на Fiddler , который является отличным инструментом отладки HTTP. Вы должны будете наблюдать за соединениями и видеть, могут ли клиенты соединиться, и если нет, почему это терпит неудачу. Тогда вам придется исправить проблемы с подключением, которые вызывают это.
Я не уверен, возможно ли это для вас, но будет гораздо менее подвержен ошибкам использование net.tcp в качестве привязки и где-то будет сервер, к которому могут подключиться все клиенты (как net.tcp этого не делает требует, чтобы сервер был в состоянии открыть порт обратно клиенту, он может отправить с использованием существующего соединения). Для этого требуется только, чтобы клиент мог подключаться к серверу, а не серверу, который должен был бы иметь возможность создать второе подключение обратно к клиенту, и, таким образом, он работает через стандартные конфигурации NAT.