Сервис WCF за брандмауэром - Как настроить пересылку портов?

StackOverflow https://stackoverflow.com/questions/4525901

Вопрос

Я просто вхожу в программирование WCF. Я установил самостоятельный тестовый веб-сервис на своем рабочем компьютере, который стоит за брандмауэром; это в http://localhost:8000/MyTestService. Анкет Я могу получить доступ к странице службы через браузер; все работают нормально.

Теперь я хочу получить доступ к этой службе с моего домашнего компьютера, который находится в другой сети. У меня есть динамичный DNS (называйте это mydomain.dyndns.org), чтобы указать на мой рабочий маршрутизатор. Проверили, Dyndns указывает на правильный адрес.

Теперь я установил тестовое приложение на свой домашний компьютер для подключения к моей веб -службе. Поэтому я настроил свой NAT для запросов прямого на порт 8000 на свой рабочий компьютер, на тот же номер порта.

На своем домашнем компьютере я теперь открываю браузер и перейду к http://mydomain.dyndns.org:8000/MyTestService. Анкет Ничего не делая.

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

Это было полезно?

Решение

Вы видите ошибку или пустую страницу? Можете ли вы проверить canyouseeme.org с компьютера за брандмауэром, что порт действительно открыт? Можете ли вы проверить с такими инструментами, как Sysinternals Tcpview, что попытка подключения достигает этого компьютера, а не только с маршрутизатором?

Другие советы

У меня такая же проблема.

После хорошей помощи от этой топпики. http://www.codeproject.com/questions/140317/wcf-services-and-windows-firewall. Анкет Моя служба WCF хорошо работала на местной локальной сети даже с активным брандмауэром.

Но это не было доступно через Интернет. После пересылки порта я мог увидеть описание службы. Но я не мог его использовать.

эта статья http://gavinmckay.wordpress.com/2009/03/24/howto-fix-wcf-host-name-on-iis// указывает мне в правильном направлении. Служба видна, но подключения к вашему веб-серверу не удастся, потому что WSDL указывает на не опубликованное имя сервера, и ваш клиент не сможет туда добраться.

В моем случае, мне нужно изменить самостоятельный WCF местной конечной точки на публику.

        1 Create a URI to serve as the base address.
        Uri baseAddress = new Uri("http://publicdomain.com:8000/GettingStarted/");
        // Step 2 Create a ServiceHost instance
        ServiceHost selfHostRemote = new ServiceHost(typeof(MyService), baseAddress);

Удачи

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top