web-dev-qa-db-fra.com

Comment choisir le port à utiliser lors de la création d'un service Windows? (Windows et .net)

J'écris un service Windows qui exposera un service Web http RESTful pour d'autres processus sur la machine. Cela sera déployé sur de nombreuses machines sur divers postes de travail d'entreprise sur lesquels je n'ai que peu ou pas de contrôle. Comment choisir le port sur lequel mon service doit écouter?

Je vais le rendre configurable, mais j'ai besoin de savoir comment choisir des valeurs par défaut raisonnables.

fyi je prévois d'utiliser .NET 3.5 (incapable d'utiliser 4.0 pour des raisons de déploiement) et WCF avec WCF REST Starter Toolkit .

[~ # ~] mise à jour [~ # ~] : pour clarifier, ce sont des machines de non-développement d'entreprise. Je veux choisir un port qui ne sera probablement pas utilisé pour autre chose. Je suppose que dans cette liste de NUMÉROS DE PORT (merci @Pascal Thivent) que je devrais en choisir un dans la plage dynamique/privée

Les ports dynamiques et/ou privés sont ceux de 49152 à 65535

Existe-t-il une meilleure façon de choisir un port dans cette plage, ou dois-je simplement choisir au hasard?

25
Rory

En fin de compte, nous avons choisi un port arbitraire inutilisé dans la plage des ports enregistrés - de 1024 à 49151 - puis l'avons rendu configurable sur la possibilité que quelqu'un arrive et utilise ce port pour autre chose. La meilleure solution serait alors d'enregistrer ce port.

Nous avons choisi de ne pas utiliser un port dynamique car les processus peuvent commencer arbitrairement à les utiliser, il serait donc moins cohérent que le port soit disponible.

7
Rory

Les attributions officielles enregistrées auprès de l'Internet Assigned Numbers Authority (IANA) pour HTTP sont:

  • 80: port standard pour HTTP,
  • 8080: alternative HTTP (couramment utilisée par le cache ou le proxy ou le serveur Web fonctionnant en tant qu'utilisateur non root)

Les ports ci-dessous sont des ports non officiels (non enregistrés auprès de l'IANA) qui sont également utilisés:

  • 8081: alternative HTTP
  • 8090: alternative HTTP (utilisée comme alternative au port 8080)

Je ne sais pas quel type de machines vous ciblez mais si elles incluent des machines de développement, j'utiliserais probablement 8090 pour minimiser les conflits possibles.

Références

14
Pascal Thivent

Si votre service est HTTP, vous devez utiliser le port 80 - le port HTTP standard. Ceci est typique de la plupart des services Web REST.

4
Dan Puzey