我正在编写一个Windows服务,它将为计算机上的其他进程公开一个http RESTful Web服务。这将被部署到我几乎无法控制的各种企业桌面上的许多机器上。我应该如何选择我的服务应该监听哪个端口?
我会让它可配置,但需要知道如何选择一些合理的默认值。
fyi我打算使用.NET 3.5(出于部署原因无法使用4.0)和使用WCF REST Starter Toolkit的WCF。
更新:澄清一下,这些是企业非开发机器。我想选择一个不太可能用于其他任何东西的端口。我想从这个PORT NUMBERS列表(感谢@Pascal Thivent)我应该在动态/私人范围内选择一个
动态和/或专用端口是49152到65535
的端口
那么有没有更好的方法来选择该范围内的端口,或者我只是随意选择?
答案 0 :(得分:14)
针对HTTP的互联网号码分配机构(IANA)注册的官方分配是:
以下端口是非官方端口(未在IANA注册),也使用:
我不知道您所针对的是什么类型的机器,但如果它们包含开发机器,我可能会使用8090来尽量减少可能的冲突。
答案 1 :(得分:7)
最终,我们在注册端口范围内选择了一个任意未使用的端口 - 从1024到49151 - 然后在有人出现的情况下对其进行配置,并使用该端口进行其他操作。那么最好的解决方案是注册该端口。
我们选择不使用动态端口,因为进程可以任意开始使用它们,因此无论端口是否可用,它都不太一致。
答案 2 :(得分:4)
如果您的服务是HTTP,那么您应该使用端口80 - 标准HTTP端口。这是大多数REST Web服务的典型特征。