web-dev-qa-db-ja.com

Windowsサービスの構築時に使用するポートを選択するにはどうすればよいですか? (windows&.net)

私は、マシン上の他のプロセスのhttp RESTful Webサービスを公開するWindowsサービスを書いています。これは、私がほとんどまたはまったく制御できないさまざまな企業のデスクトップ上の多くのマシンに展開されます。サービスがリッスンするポートをどのように選択すればよいですか?

私はそれを構成可能にしますが、合理的なデフォルトを選択する方法を知る必要があります。

fyi WCF REST Starter Toolkit で.NET 3.5(デプロイメントの理由で4.0を使用できない)とWCFを使用することを計画しています。

[〜#〜] update [〜#〜]:明確にするために、これらは企業の非開発マシンです。他には使用されない可能性のあるポートを選択したい。この PORT NUMBERS のリストから、(Pascal Thiventに感謝)ダイナミック/プライベートの範囲から1つを選択する必要があると思います

動的および/またはプライベートポートは49152から65535までのものです。

その範囲内のポートを選択するより良い方法はありますか、それともランダムに選択するだけですか?

25
Rory

最終的には、登録済みポートの範囲(1024〜49151)から任意の未使用のポートを選択し、誰かがやって来てそのポートを他の何かに使用する機会に構成可能にしました。その場合、最善の解決策はそのポートを登録することです。

プロセスが動的に使用を開始できるため、動的ポートを使用しないことを選択しました。そのため、ポートが使用可能であったかどうかの一貫性が低くなります。

7
Rory

HTTPのIANA(Internet Assigned Numbers Authority)に登録されたofficial割り当ては次のとおりです。

  • 80:HTTPの標準ポート
  • 8080:HTTP代替(通常、非ルートユーザーとして実行されているキャッシュまたはプロキシまたはWebサーバーによって使用されます)

以下のポートは、非公式のポート(IANAに登録されていない)でも使用されます。

  • 8081:HTTP代替
  • 8090:HTTP代替(ポート8080の代替として使用)

対象とするマシンの種類はわかりませんが、開発マシンが含まれている場合は、競合を最小限に抑えるために8090を使用します。

参考文献

14
Pascal Thivent

サービスがHTTPの場合、標準のHTTPポートであるポート80を使用する必要があります。これは、ほとんどの典型的なREST webservicesです。

4
Dan Puzey