Откройте для себя локально работающий WCF из WP7 - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть служба WCF, работающая внутри службы Windows, и она находится в моей локальной сети. Я хочу, чтобы у меня была возможность обнаружить WCF из моего приложения Silverlight на моем WP7 (в той же сети).

Я знаю, что в WCF есть функция Discovery, однако она требует UDP, который не поддерживается в WP7. Так есть ли другие способы открыть местный WCF?

Я также не знаю до запуска WCF IP-адрес службы WCF.

Ответы [ 3 ]

2 голосов
/ 01 февраля 2012

Решение, которое я придумал, заключается в использовании сокетов, так как в WP7 они поддерживают многоадресную рассылку.Поэтому настройка должна выглядеть следующим образом:

  • Служба рабочего стола - служба Windows, на которой размещается WCF, и небольшое приложение Socket, которое прослушивает определенный порт.
  • Клиент WP7 - перед подключением к WCF будет отправлено широковещательное сообщение с использованием сокетов для определения IP-адреса компьютера, на котором работает WCF, когда получен ответ на подключение к WCF.
1 голос
/ 01 февраля 2012

Вы можете предоставить базовую конечную точку, которая предоставляет своего рода службу каталогов. Он не должен реализовывать UDDI, но это может быть собственный протокол, соответствующий вашим потребностям и обратным адресам веб-сервисов.

Таким образом, вам нужно знать только один адрес. Конечно, вы можете кэшировать возвращенные адреса и запрашивать службу каталогов только тогда, когда вы не можете подключиться.

1 голос
/ 01 февраля 2012

Для службы WCF, на которую нужно ссылаться в проекте WP7, служба WCF ДОЛЖНА быть BasicEndpoint

...