2012-03-06 2 views
1

У меня есть служба хоста в приложении WPF и клиенте. Он отлично работает, если клиент и служба находятся в одной локальной сети, поэтому я могу отправлять сообщения от клиента к службе.WCF: как использовать услугу «хозяина» из Интернета?

Тем не менее, я хотел бы знать, как я могу использовать услугу из Интернета.

Открываю порты TCP для порта ввода и mex в моем маршрутизаторе в разделе NAT, и я отключил брандмауэр окон (я работаю в виртуальных окнах xp).

Я пытаюсь использовать привязку net.tcp, это мой первый вариант, но также я пытаюсь использовать wsHttpBinding, и проблема такая же, я могу отправить сообщение в локальной сети, но я не могу из Интернета.

Возможно, это связано с тем, что я не знаю, как настроить адрес в службе или на клиенте или что-то в этом роде.

Спасибо вам большое. Daimroc.

EDIT1: если я пользуюсь сайтом www.canyouseeme.org, я могу получить доступ к моему сервису. Если я остановлю свое обслуживание, я получаю сообщение об ошибке. Таким образом, похоже, что услуга видна. Тогда почему нельзя отправлять сообщения от клиента?

ответ

1

Поскольку вы находитесь в локальной сети, очень вероятно, что машине, на которой размещена служба WCF, не назначен IP-адрес, доступный из Интернета. Например, если у машины есть IP-адрес, начинающийся с 10 ... или 172 ... или 192 ... тогда это внутренний IP-адрес.

Ваш компьютер должен быть настроен на использование IP-адреса, назначенного регистратором, и, при необходимости, назначил доменное имя (например, canyouseeme.org), чтобы DNS-серверы Интернета могли перевести его на назначенный IP-адрес.

+0

Здесь, я думаю, вы смешиваете IP-маршрутизацию и DNS. Только немного. Я не думаю, что он сможет что-то сделать с этим ответом ... – sinni800

+0

Ну, я читаю о моем маршрутизаторе, и похоже, что он не поддерживает локальный loopback, поэтому я могу получить доступ к сервису с публичным IP-адресом если я пытаюсь подключиться к сервису из локальной сети. Итак, я попробую его с кем-то из моей локальной сети. –

Смежные вопросы