如何在部署窗口服务承载的 WCF 服务时管理端口号

本文关键字:服务 WCF 管理 口号 部署 窗口 | 更新日期: 2023-09-27 18:33:12

对不起,如果这听起来很简单,但我对wcf/network很陌生,所以请耐心等待。

我想将窗口服务托管的 WCF 服务部署到三台服务器(开发、UAT、生产(,因此需要将每个服务器的终结点 url 存储在数据库中,以便可以使用脚本自动进行部署。窗口服务除了托管 wcf 服务外什么都不做,当它启动时,我将终结点 url 设置为 localhost:8081/MyCompnay/MyService,只需使用默认的 BasicHttpBinding 传递到服务主机构造函数。我目前正在选择一个随机端口号(8080 几乎肯定已经在使用中(,我想知道在这种情况下管理端口号的最佳方法是什么,在这种情况下服务将部署到不同的服务器?我担心即使我使端口号可配置,当我的服务在关闭后重新启动时,可能会发生相同的端口号被其他一些应用程序占用的情况(无论出于何种原因!我想确保我设置的端口号不会被其他应用程序占用。希望我已经说清楚了。

如何在部署窗口服务承载的 WCF 服务时管理端口号

永远不能保证不会使用端口号。您可以有一系列端口号,尝试通过它们进行检查,直到找到一个有效的端口号。 如果您找不到有效的方法,则错误并通知用户。 选择高于 49151 的端口号,因为这些端口号被视为专用端口。

如果不需要 HTTP 绑定,则可以使用不需要端口的命名管道绑定,但使用该绑定也存在不同的限制。

还可以选择向 IANA 注册您的端口号,然后任何使用您的端口的人在技术上都是糟糕的应用程序,但无法阻止它。 对于大多数应用程序来说,这是矫枉过正的。