Visual Studio の Web アプリケーションにはランダムなポート番号が割り当てられていることがわかっています。私のオフィスのデスクトップでは問題なく動作します。しかし、コードをラップトップ (VisualStudio.com から) にプルして Web アプリケーションを実行すると、次のようなメッセージが表示されます。
指定されたポートは使用中です
ポート 10360 はすでに別のアプリケーションによって使用されています。
推奨事項
- 10360 以外のポート、1024 より高いポートに切り替えてみてください。
- ポート 10360 を使用しているアプリケーションを停止します。
ポートを 13333 などの別のポートに変更することで修正できますRecommendation #1
。しかし、ポート 10360 に何が起こったのか非常に興味があります。ポート 10360 を使用しているアプリケーションを確認するにはどうすればよいでしょうか。そのアプリケーションを停止するにはどうすればよいでしょうか。
ベストアンサー1
Windows 10 で Visual Studio 2019 を実行しているときにも同様の問題が発生しました。他のユーザーに有効だった解決策には次のようなものがあるようです。
- アプリケーション ポート番号の変更。
- アプリケーションの起動ごとに Visual Studio でポート番号を自動的に割り当てます。
- Visual Studioを再起動します
- コンピュータを再起動します。
残念ながら、これらの解決策はどれも機能しませんでした。別のポート番号を割り当てることは機能しましたが、アプリケーションが指定されたポートで実行されることが重要であったため、受け入れられる解決策ではありませんでした。
ソリューション
まず次のコマンドを実行しました:
netsh http add iplisten ipaddress=::
昇格されたコマンドライン プロセスから。これにより、最初のエラーが解決され、アプリケーションを実行しようとしたときに「ポートが使用中」というエラーが表示されなくなりました。代わりに、管理者権限が必要なためアプリケーションがポートにバインドできないというエラーが表示されるようになりました。(Visual Studio を管理者として実行していましたが)
2 番目のエラーは、ポート除外範囲にポートを追加する Hyper-V によって発生しました。アプリケーションが使用するポートは、これらの除外範囲の 1 つに含まれていました。次のコマンドを実行すると、これらのポートを表示できます。netsh interface ipv4 show excludedportrange protocol=tcp
この 2 番目のエラーを解決するには:
- Hyper-Vを無効にする: コントロールパネル->プログラムと機能->Windowsの機能の有効化または無効化。Hyper-Vのチェックを外します。
- コンピュータを再起動します。
- 使用しているポートをポート除外範囲に追加します。
netsh int ipv4 add excludedportrange protocol=tcp startport=50403 numberofports=1 store=persistent
- Hyper-V を再度有効にする
- コンピュータを再起動します
ここからはすべてが完璧に機能しました。