domain - ¿Cómo elegir qué puerto usar al construir un servicio de Windows?(windows &.net)
netsh http add urlacl (3)
Estoy escribiendo un servicio de Windows que expondrá un servicio web http RESTful para otros procesos en la máquina. Esto se implementará en muchas máquinas en varios escritorios corporativos sobre los cuales tengo poco o ningún control. ¿Cómo debería elegir qué puerto debería escuchar mi servicio?
Lo haré configurable, pero necesito saber cómo elegir algunos valores predeterminados razonables.
fyi Estoy planeando usar .NET 3.5 (no se puede usar 4.0 por razones de implementación) y WCF con WCF REST Starter Toolkit .
ACTUALIZACIÓN : para aclarar, estas son máquinas corporativas sin desarrollo. Quiero elegir un puerto que probablemente no se use para nada más. Supongo que de esta lista de NÚMEROS DE PUERTO (gracias @Pascal Thivent) que debería elegir uno en el rango dinámico / privado
Los puertos dinámicos y / o privados son los de 49152 a 65535
Entonces, ¿hay alguna forma mejor de elegir un puerto dentro de ese rango, o simplemente elijo aleatoriamente?
En última instancia, elegimos un puerto no utilizado arbitrario en el rango de puertos registrados, de 1024 a 49151, y luego lo configuramos por casualidad. Alguien viene y usa ese puerto para otra cosa. La mejor solución sería registrar ese puerto.
Optamos por no utilizar un puerto dinámico ya que los procesos pueden comenzar a usarlos arbitrariamente, por lo que sería menos consistente si el puerto estuviera disponible.
Las asignaciones oficiales registradas con la Autoridad de números asignados de Internet (IANA) para HTTP son:
- 80: puerto estándar para HTTP,
- 8080: HTTP alternativo (comúnmente utilizado por caché o proxy o servidor web que se ejecuta como usuario no root)
Los puertos a continuación son puertos no oficiales (no registrados en IANA) que también se utilizan:
- 8081: HTTP alternativo
- 8090: HTTP alternativo (utilizado como alternativa al puerto 8080)
No sé a qué tipo de máquinas apuntas, pero si incluyen máquinas de desarrollo, probablemente usaría 8090 para minimizar posibles conflictos.
Referencias
Si su servicio es HTTP, debe usar el puerto 80, el puerto HTTP estándar. Esto es típico de la mayoría de los servicios web REST.