如何在构buildWindows服务时select使用哪个端口? (windows&.net)

我正在写一个Windows服务,它将为机器上的其他进程公开一个http RESTful Web服务。 这将被部署到许多我很less/没有控制的企业桌面上的机器。 我应该如何select我的服务应该监听的端口

我将使其可configuration,但需要知道如何select一些合理的默认(S)。

我打算使用.NET 3.5(无法使用4.0出于部署的原因)和WCF与WCF REST Starter Toolkit 。

更新 :澄清,这些是企业非发展机器。 我想select一个不太可能被其他用途的端口。 我想从这个港口名单(感谢@帕斯卡尔Thivent),我应该select一个在dynamic/私人范围

dynamic和/或私人端口是从49152到65535

那么有没有更好的方法来select这个范围内的一个端口,还是我随便select?

在互联网号码分配机构(IANA)注册HTTP的正式任务是:

  • 80:HTTP的标准端口,
  • 8080:HTTP备用(通常由作为非root用户运行的缓存或代理或Web服务器使用)

以下端口是非官方端口(未在IANA注册),也被使用:

  • 8081:HTTP备用
  • 8090:HTTP备用(用作端口8080的替代)

我不知道你的目标是什么样的机器,但是如果它们包括开发机器的话,我可能会用8090来减少可能的冲突。

参考

  • 港口号码
  • TCP和UDP端口号列表

最终,我们在注册端口范围内(从1024到49151)选择了一个任意未使用的端口,然后使其可配置为某个人来到的地方,并使用该端口进行其他操作。 最好的解决办法就是注册那个端口。

我们选择不使用动态端口,因为进程可以随意开始使用它们,所以端口是否可用会不太一致。

如果你的服务是HTTP,那么你应该使用80端口 – 标准的HTTP端口。 这是大多数REST web服务的典型特征。