Как выбрать, какой порт использовать при создании службы Windows? (windows &.net)

Я пишу службу Windows, которая будет показывать веб-службу http RESTful для других процессов на машине. Это будет развернуто на множестве машин на разных корпоративных настольных компьютерах, в которых у меня мало/нет контроля. Как выбрать, какой порт должен обслуживать мой сервис?

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

fyi Я планирую использовать .NET 3.5 (не используя 4.0 для целей развертывания) и WCF с WCF REST Starter Toolkit.

UPDATE: для уточнения, это корпоративные машины, не предназначенные для разработки. Я хочу выбрать порт, который вряд ли будет использоваться для чего-либо еще. Я думаю из этого списка PORT NUMBERS (спасибо @Pascal Thivent), что я должен выбрать один в динамическом/закрытом диапазоне

Динамические и/или частные порты - это от 49152 до 65535

Итак, есть ли лучший способ выбора порта в этом диапазоне или просто выбрать случайно?

Ответ 1

В конечном итоге мы выбрали произвольный неиспользуемый порт в диапазоне зарегистрированных портов - от 1024 до 49151 - и затем сделали его настраиваемым на выходе, кто-то приходит и использует этот порт для чего-то еще. Лучшим решением было бы зарегистрировать этот порт.

Мы решили не использовать динамический порт, поскольку процессы могут произвольно начать их использовать, поэтому было бы менее согласовано, доступен ли порт.

Ответ 2

Официальными заданиями, зарегистрированными в соответствии с полномочиями Internet Assigned Numbers Authority (IANA) для HTTP, являются:

  • 80: стандартный порт для HTTP,
  • 8080: HTTP alternate (обычно используется кешем или прокси-сервером или веб-сервером, работающим как пользователь без полномочий root)

Нижеследующие порты являются неофициальными портами (не зарегистрированными в IANA), которые также используются:

  • 8081: HTTP alternate
  • 8090: HTTP alternate (используется как альтернатива порту 8080)

Я не знаю, на какие машины вы нацеливаетесь, но если они включают машины разработки, я бы, вероятно, использовал 8090, чтобы свести к минимуму возможные конфликты.

Ссылки

Ответ 3

Если ваша служба - HTTP, вам следует использовать порт 80 - стандартный HTTP-порт. Это типично для большинства веб-сервисов REST.