Сделать сервис WCF доступным через Интернет

Я сделал сервис WCF. Я хочу, чтобы у его клиента был доступ к нему откуда угодно. Как я могу это сделать? Подробности:

  • Я хочу, чтобы он размещался в процессе Windows, а не на сайте.
  • Я использую привязку TCP.
  • Я почти ничего не знаю о веб-хостинге и т. Д.
  • Желательно не использовать IIS ...

Я нашел много рекомендаций в сети, но до сих пор не понимаю всех вещей. Подскажите, пожалуйста, подробнее, как это сделать ...

Насколько я понимаю, нужно сделать глобал для конечной точки. Я настроил переадресацию портов в моем роутере на порт 8000, но .. что дальше? Какой адрес я должен ввести в качестве адреса конечной точки? Теперь это localhost: 8000.


person Tim    schedule 25.02.2010    source источник


Ответы (6)


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

Для вашего хоста и клиента WCF вам понадобится конечная точка, которая выглядит следующим образом:

  • Хост: net.tcp: // localhost: portnum / servicename
  • Клиент: net.tcp: // publicipORdomainname: portnum / servicename

Вам нужно будет убедиться, что ваш маршрутизатор направляет порт на хост-компьютер. Судя по вопросу, вы все сделали правильно. Поскольку хост является локальным, вам не нужно изменять конечную точку, чтобы использовать общедоступный IP-адрес или имя домена. Клиенту необходимо разрешить вызов хосту, который находится на удаленном адресе, поэтому ему нужен общедоступный IP-адрес с возможностью адресации.

person Fadrian Sudaman    schedule 25.02.2010

Вам не нужен IIS, вы можете разместить его самостоятельно, и он будет доступен через Интернет.

По сути, когда вы самостоятельно размещаете приложение WCF, это сервер (точно так же, как веб-сервер, такой как Apache или IIS).

Вот хороший веб-сайт, на котором обсуждается, как открыть доступ к вашему собственному серверу в Интернете.

http://www.diywebserver.com/

Имейте в виду, что вы можете пропустить любые части, связанные с настройкой Apache, поскольку у вас уже есть сервер (ваше приложение WCF).

person Arash Emami    schedule 25.02.2010

Как я ответил в этом связанных Ссылка SO, мое предложение основано на этом примере codeproject.com. Это работает хорошо.

person kenny    schedule 25.02.2010

вам необходимо иметь публичный IP и доменное имя. Я бы посоветовал арендовать виртуальный сервер для вашей службы и разместить его в службе Windows.

person rerun    schedule 25.02.2010

вам не следует размещать на localhost: 8000, потому что он будет доступен только на локальном компьютере. Перенаправление портов не работает.

Вместо этого используйте сетевое имя машины или IP-адрес LAN.

person Todd    schedule 28.09.2011

Если ваша служба работает на IIS без каких-либо проблем, вам необходимо выполнить следующие действия, чтобы получить доступ к этой службе через Интернет.

Предположим:

Имя моего решения - SearchServiceLibrary.

Название интерфейса: ISearch.

Имя класса - Search, и этот класс реализует интерфейс ISearch.

Шаг 1. Если ваш компьютер находится за NAT, вам необходимо перенаправить ПОРТ, чтобы сообщить маршрутизатору, куда он должен отправлять полученные запросы для веб-служб.

Шаг 2. Чтобы указать доменное имя / IP-адрес сервера в файле WSDL

Обновить или изменить следующий тег в файле app.config

 <serviceMetadata httpGetEnabled="True" httpGetUrl="http://DomainName_OR_IPAddress:PORT/SearchServiceLibrary.Search.svc/basic"/>

Шаг 3. Задайте Местоположение мыла в файле app.config.

Вам необходимо добавить конечную точку в файл app.config, вы можете сделать это описательно или с помощью опции ИЗМЕНИТЬ КОНФИГУРАЦИИ WCF.

<service name="SearchServiceLibrary.Search">
                <endpoint    address="http://DomainName_OR_IPAddress:PORT/SearchServiceLibrary.Search.svc/basic"   binding="basicHttpBinding"
          contract="SearchServiceLibrary.ISearch">
          <identity>
            <dns value="localhost" />
          </identity>
    </endpoint>

ИЛИ используя опцию ИЗМЕНИТЬ КОНФИГУРАЦИИ WCF

введите описание изображения здесьЭто сработало идеально для меня.

person Community    schedule 13.05.2014