「アクセス許可によって禁止されている方法でソケットにアクセスしようとしました」というメッセージが表示され、Kestrel を起動できません

「アクセス許可によって禁止されている方法でソケットにアクセスしようとしました」というメッセージが表示され、Kestrel を起動できません

Visual Studio 2017 (Windows 10) から Kestrel アプリケーションを実行しているときに、コマンド プロンプトに次の行が表示されます。

「バインドできませんhttp://localhost:50067IPv4 ループバック インターフェイスで: 「アクセス許可によって禁止されている方法でソケットにアクセスしようとしました。」

そしてその後にはこうも書かれています

Microsoft.AspNetCore.Server.Kestrel[0]
      Unable to start Kestrel.

参考までにスクリーンショットもご覧ください

ポート番号にバインドできません

その理由は何でしょうか?

私がやったことは、コマンドからポートを確認することですnetstat -a

注 - netstat -a「コマンドプロンプト」ウィンドウで「Enter」を押します。コンピューターに開いているすべてのTCPポートとUDPポートのリストが表示されます。

そのリストにもポート番号が見つかりません。

答え1

Windows 10 アップデート KB4074588一部のポートは Windows によって予約されており、アプリケーションはこれらのポートにバインドできません。50067 はブロックされた範囲内にあります。

netsh interface ipv4 show excludedportrange protocol=tcp予約済み範囲を一覧表示するために使用できます。

除外ポート範囲リスト

答え2

私は、dotnet core (2.2) 上の Windows 10 でこれに何度か遭遇しました。私の場合、ネットワーク カード ドライバーが更新された後に発生する傾向があります (例: Dell Support Assist アプリによる)。奇妙なのは、3 つの dotnet core アプリのうち 1 つだけに問題があるのに、NodeJS API には問題がないことです。

私の場合は、再起動すると問題は解決します。

答え3

コメントを追加できません。

なぜ私のブロックリストは違うのですか? – liang 2020年11月2日 9:39

IIS Web サイトがポートを使用している場合は、このリストに表示されます。他の Windows サービスも同様だと思います。

答え4

Microsoft の Bot Framework ボット サンプルを実行しようとしたときに、このエラーが発生しました。

結局、ポート (3978) のバックグラウンドで別のボットが動作していただけだったことが判明しました。それを停止すると、サンプルを正常に実行できました。

関連情報