Тестирование приложения WCF Chat на разных машинах - PullRequest
1 голос
/ 23 февраля 2011

У меня есть решение, содержащее сервис с двумя клиентами. Они могут общаться друг с другом, отправлять сообщения и инициировать события. Они отлично работают, когда я тестирую на одной машине, но я устанавливаю их на разных машинах, подключен интернет и они не находят друг друга. Так как я сам принимаю свой сервис, может ли это быть причиной? Я использую DuallHttpBinding в качестве конфигурации привязки. В моем случае это приложение чата с двумя клиентскими экземплярами и одним сервисом, каждый из которых работает на разных компьютерах без какого-либо сетевого подключения, кроме подключения к Интернету.

1 Ответ

0 голосов
/ 23 февраля 2011

DualHttpBinding требует, чтобы два клиента могли открывать соединения и отправлять сообщения друг другу. Скорее всего, один из клиентов находится за брандмауэром, который не может принимать входящие соединения, маршрутизатором NAT, который не перенаправлен через порт, или у другого клиента просто нет правильного адреса для его поиска.

Этот вид прямой двусторонней связи по HTTP очень трудно понять, как только вы попадете в Интернет. Чтобы отладить его, я бы посоветовал взглянуть на Fiddler , который является отличным инструментом отладки HTTP. Вы должны будете наблюдать за соединениями и видеть, могут ли клиенты соединиться, и если нет, почему это терпит неудачу. Тогда вам придется исправить проблемы с подключением, которые вызывают это.

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

...