Как выбрать, какой порт использовать при создании службы 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.