如何在构建Windows服务时选择使用哪个端口? (windows& .net)

时间:2010-09-26 22:35:00

标签: windows web-services http port

我正在编写一个Windows服务,它将为计算机上的其他进程公开一个http RESTful Web服务。这将被部署到我几乎无法控制的各种企业桌面上的许多机器上。我应该如何选择我的服务应该监听哪个端口?

我会让它可配置,但需要知道如何选择一些合理的默认值。

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

更新:澄清一下,这些是企业非开发机器。我想选择一个不太可能用于其他任何东西的端口。我想从这个PORT NUMBERS列表(感谢@Pascal Thivent)我应该在动态/私人范围内选择一个

  

动态和/或专用端口是49152到65535

的端口

那么有没有更好的方法来选择该范围内的端口,或者我只是随意选择?

3 个答案:

答案 0 :(得分:14)

针对HTTP的互联网号码分配机构(IANA)注册的官方分配是:

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

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

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

我不知道您所针对的是什么类型的机器,但如果它们包含开发机器,我可能会使用8090来尽量减少可能的冲突。

参考

答案 1 :(得分:7)

最终,我们在注册端口范围内选择了一个任意未使用的端口 - 从1024到49151 - 然后在有人出现的情况下对其进行配置,并使用该端口进行其他操作。那么最好的解决方案是注册该端口。

我们选择不使用动态端口,因为进程可以任意开始使用它们,因此无论端口是否可用,它都不太一致。

答案 2 :(得分:4)

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