WCF – удаленная служба без использования IIS – базовый адрес?

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

Вопрос

Я пытаюсь разобраться в адресации служб WCF.

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

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

Каждый клиент регистрируется на сервере пользователем (их необходимо настроить индивидуально), поэтому обнаружение не является проблемой.

Мой вопрос: как работает адресация?Я представляю, как пользователь вводит адрес клиента на сервере в форме

http://0.0.0.0/MyService

или даже

http://hostname/MyService

Если да, то как мне настроить клиентскую службу в App.config?Я использую localhost?

Если нет, то каков рекомендуемый способ предоставления службы серверу?

Примечание:

  • Я не хочу размещать IIS, поскольку это добавляет дополнительные требования к оборудованию, необходимому клиенту.
  • Клиенты почти наверняка будут расположены в локальных сетях, а не в общедоступном Интернете.
Это было полезно?

Решение

Вы настраиваете базовый адрес службы следующим образом:

<system.serviceModel>
  <services>
    <service name="Ns.FooService">
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:9999" />
        </baseAddresses>
      </host>
      <endpoint
          address="/foo"
          binding="basicHttpBinding"
          contract="Ns.IFooContract" />
     </service>
  </services>
</system.serviceModel>

И тогда ваш сервис станет доступен через http://servename:9999/foo.Вы можете взглянуть на Эта статья Чтобы получить больше информации.

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