なぜ、どのように修正するのですか?IISExpress「指定されたポートは使用中です」


81

VisualStudioのWebアプリケーションにランダムなポート番号が割り当てられていることがわかっています。それは私のオフィスのデスクトップでうまく機能します。しかし、(VisualStudio.comから)ラップトップにコードをプルしてWebアプリを実行すると。私は、「

指定されたポートは使用中です

ポート10360はすでに別のアプリケーションで使用されています。

推奨事項

  1. 10360以外の1024以上のポートに切り替えてみてください。
  2. ポート10360を使用しているアプリケーションを停止します。

Recommendation #1ポートを13333のようなものに変更することで修正できます。しかし、ポート10360に何が起こったのか非常に興味があります。どのアプリケーションがポート10360を使用しているかを確認するにはどうすればよいですか?そのアプリケーションを停止するにはどうすればよいですか?


私も同じ問題を抱えていました。私の問題は、同じソリューションに複数のWebプロジェクトがあることでした。彼らは走っていなかったのに。他のプロジェクトの1つが同じポートを使用しました。特定のプロジェクトが独自のポートを使用していることを確認してください。
脅威2017

回答:


52

私はこの方法で問題を解決します...

ファイル->開く-> Webサイト... ここに画像の説明を入力してください

その後、IIS ExpressサイトローカルIISを選択し 、不要なプロジェクトを削除します

この助けを願っています。


4
これを行った後、再起動する必要がありました。
angrydust 2016

4
IIS ExpressサイトでローカルIISを選択する場所
Prakash Joshi 2017年

2
この手順では、私の問題は修正されませんでした。手順を実行した後、Visual Studioも再起動しましたが、何も得られませんでした。
user1451111 2017年

これを実行した後、ソリューションを実行しようとすると、「Webサーバーiisexpressに接続できません」というエラーが表示されます。
エンリコ

37
  1. ソリューションで変更します(右クリック)->プロパティ-> Webタブ
  2. [仮想ディレクトリの作成](プロジェクトのURLテキストボックスの前)をクリックします

使用中のポートを修正するためのIISExpressポートの変更


1
.slnプロパティページを何度も変更したくありません。私の場合、(上記で示したように)プロパティページで定義されたポートは、Visual Studioで何かを実行すると、VisualStudioがクラッシュする原因となるロックされます。
bkwdesign 2015

@bkwdesign、クラッシュについてはわかりません。管理者権限で実行し、仮想ディレクトリを作成するか、VSを最新バージョンに更新するか、最後に標準のIISロールに切り替える必要があります
Iman

30

Windows10でVisualStudio 2019を実行すると、同様の問題が発生しました。他のソリューションで機能したソリューションには、次のものが含まれているようです。

  1. アプリケーションのポート番号を変更します。
  2. アプリケーションが起動するたびに、VisualStudioにポート番号を自動的に割り当てさせます。
  3. VisualStudioを再起動します
  4. コンピューターを再起動します。

残念ながら、これらのソリューションはどれも機能しませんでした。別のポート番号を割り当てることは機能しましたが、アプリケーションを指定したポートで実行することが重要であったため、受け入れられるソリューションではありませんでした。

ソリューション

最初にコマンドを実行しました:

netsh http add iplisten ipaddress=::

高度なコマンドラインプロセスから。これにより、最初のエラーが解決されました。アプリケーションを実行しようとすると、「使用中のポート」エラーが発生しなくなりました。代わりに、管理者権限が必要なため、アプリケーションがポートにバインドできなかったことを示すエラーが発生しました。(私は管理者としてVisual Studioを実行していましたが)

2番目のエラーは、ポートをポート除外範囲に追加するHyper-Vが原因で発生しました。アプリケーションが使用するポートは、これらの除外範囲の1つにありました。次のコマンドを実行すると、これらのポートを表示できます。netsh interface ipv4 show excludedportrange protocol=tcp

この2番目のエラーを解決するには:

  1. Hyper-Vを無効にする:[コントロールパネル]-> [プログラムと機能]-> [Windowsの機能をオンまたはオフにする]。Hyper-Vのチェックを外します
  2. コンピューターを再起動します。
  3. 使用しているポートをポート除外範囲に追加します。 netsh int ipv4 add excludedportrange protocol=tcp startport=50403 numberofports=1 store=persistent
  4. Hyper-Vを再度有効にする
  5. コンピューターを再起動します

ここからすべてが完璧に機能しました。


うわー、私を解決に導いた唯一のこと。Hyper-Vを無効にすると、企業ビルドのおかげでWindows 10のひどいBSODが発生しましたnetsh interface ipv4 show excludedportrange protocol=tcpが、少なくともプロジェクトの新しいポートを選択することができました。
SharpC

1
DUDEこれは正解だっただけでなく、CMDスクリプトをダンプするだけでなく、実際に説明しました(ほとんどの場合は問題ありません)。どうもありがとうございました。できれば100倍に賛成します。
ライアン

1
ありがとう、これはdockerをインストールした後に私に起こりました。
MaxPowerに

1
これは私を救いました、私は一日中過ごし、非常にイライラしました。これは私を正しい解決策に導きます。github.com/docker/for-win/issues/3171#issuecomment-459205576
muhammadkashif20年5

Hyper-Vが原因でこの問題が発生しました。これをありがとう!
DylanSp

28

同じ問題が発生しましたが、netstatにもresmonにもプロセスは表示されませんでした。

私にとって問題を解決したのは、開いているすべてのブラウザウィンドウを閉じることでした。


1
ワオ。それは私にとってもうまくいきました。誰かが理由を説明できますか?
SJC 2016年

これで問題が解決する場合があり(Firefoxを標準ブラウザとして使用)、まったく意味がないことを確認します。
フロリアンウィンター

4
これは私にはうまくいきませんでした。実行中のアプリはありません。使用中のポートのみ。実行中のWebページはありません。ただのエラー。なんて痛い。
マイク

2
これが機能する理由は、Webリクエストを行うときに、ブラウザが送信元ポートに任意の番号(通常は49152〜65535)を使用しており、IISで構成されているポートと競合しているためだと思います
HughJeffner18年

これは私にとってもうまくいきました。ポートをブロックしているアプリにはそれを使用する理由がなかったため、意味がありませんでした。
JamesWestgate19年

28

これは1年以上私を悩ませていました!

私のために、

  • IISExpressで実行されているWebサイトはありません
  • netstat -anoコマンドラインで:を実行して決定されたポートを使用しているものはありませんでした。

解決策は実行することでした

netsh http add iplisten ipaddress=::

コマンドラインから。

幸せな日々、そしてクレジット:James Bryant!https://developercommunity.visualstudio.com/content/problem/110767/specified-port-is-in-use.html


何が起こったのか、そのコマンドが何をするのかは
わかり

4
このコマンドは私のIISを壊しました、これを実行することに注意してください。ローカルIISサイトを再び機能させるには、netsh http delete iplisten ipaddress = ::を実行する必要がありました。
スティーブ

IISも壊れて、実行するには管理者権限が必要だと言われ始めました。それを元に戻さなければなりませんでした。
jswetzen

この後に管理者特権の問題が発生した場合は、@ Philip Trenwithの回答を参照してください。これは、Hyper-Vで除外されたポート範囲である可能性があります。
IronSean

18

あなたが探しているnetstat

管理コマンドシェルを開いて実行します

netstat -aob

そして、ポート10360を探します。ポートを開いた実行可能ファイルとタスクマネージャーで検索するPIDが表示されます。(実際には、netstat -?最初に非特権シェルで実行します。これは、特に特権コンテキストで、理解できないものを盲目的に実行することを承認しないためです。)

スイッチの機能は次のとおりです。

-a アクティブなポートだけでなく、すべての接続または開いているポートが表示されます。必要なポートはおそらくリッスンしていて、アクティブではありません。

-oは、接続またはポートの所有PIDを示しているため、タスクマネージャーの[プロセス]タブでプロセスを見つけることができます。(タスクマネージャーでPID列を追加する必要がある場合があります。[表示]-> [列の選択])

-bは、接続またはポートのオープンに関係するバイナリを示しています。これは、昇格されたアクセスを必要とするものです。


それはきちんとしている。今、私は少なくともPIDアプリケーションのを持っています。ありがとう。
ブレイズ

9
:このコマンドは、あなたがそうのようなfindstrのに、パイプ結果怒らアプリケーションにまっすぐカットするのであれば、多くのノイズを生成しますnetstat -aob | findstr '10360'
kmkemp

1
他のすべての答えは私を森の中で送り出しました、これは実際に私がソースを見つけて問題を修正することを可能にしました。
ヒュージェフナー2018年

また、あなただけのビューのTCPポートにnestat -aob -p TCPを使用することができます
Shiroy

12
  1. VSを閉じる
    1. もう一度やり直してください-右クリックして管理者として実行してください
    2. プロジェクトを再度実行します。

ポートが別のプロセスによって使用されていると仮定すると、プロジェクト>プロパティ>デバッグでポートが変更され、管理者が機能するように実行されます
Noman Chali 2017年

かなり悲しいですが、これはうまくいきました。他に何も機能しませんでした。問題のポートで実行中のプロセスがなかったため、エラーは完全に間違っています。これは、VisualStudioとIISExpressのバグのようです。なぜそれを閉じて再度実行しなければならなかったのか意味がありません。
マイク

この手順では、私の問題は修正されませんでした。
user1451111 2017年

1回の管理者の実行が、再起動、ポートの変更、プロセスの強制終了、netstatハント、iplistenの変更の後にかかったことに満足し、不安を感じています。ユーザーとして実行しても引き続き機能します。
リチャード

10

私のために働いた簡単な解決策:(他の人の答えの組み合わせに対するクレジット)

**My System Info:**
Windows 10 build : 1809
IIS Version      : 10.0.17763.1
Hyper-V          : Enabled
Docker           : Installed - 2.3.0.2 (45183)
  • CMD(管理者)でブロックされたポートの範囲を確認します

    >> netsh interface ipv4 show excludedportrange protocol=tcp
    
    (Sample output):
    Protocol tcp Port Exclusion Ranges
    Start Port    End Port
    ----------    --------
    49696       49795         (SEE HERE, 49796 to 49895 is not blocked)
    49896       49995
    ... list goes on ...
    
  • Visual Studioを開き、> [プロジェクト]> [プロパティ]> [Web]> [サーバー]> [プロジェクトURL]に移動します。

  • ブロックされていないポートを使用してください。

    (Sample port):
    http://localhost:49796/
    
  • Visual Studioを再起動します(必要な場合)

  • コーヒーを飲み、愛を分かち合いましょう。(必須):)


3
これはすごい!ありがとう
グランダイザー

特定の範囲がブロックされている理由は何ですか?
JSantosh20年

4
  1. .slnファイルがある場合は削除します。
  2. ファイルC:\ Users \ NN \ Documents \ IISExpress \ config \ applicationhost.configを開きます
  3. configuration / system.applicationHost / sitesで問題のあるサイトを見つけ、サイトセクション全体を削除します。
  4. VisualStudioからの「OpenWebSite ..」とプロジェクトには、ランダムな新しいポートが与えられます。

これは依然として最良の解決策です。
ヴィンセント

3

netstatに何も表示されない場合は、再起動してみてください。

私の場合、ポートのnetstatには何も表示されませんでした。@Clangonと@JTTaylorが提案したように、Google Chromeブラウザウィンドウを閉じようとしましたが、役に立ちませんでした。

しかし、結局、システムの再起動は機能したので、他の何かが密かにポートを開いたままにしていたとしか思えません。あるいは、Chromeがシャットダウンした後にポートが解放されるのを待つ準備ができていたよりも時間がかかったのかもしれません。


まさに私のシナリオです!
user1451111 2017年


3

netstatは、ポートを使用しているものを何も表示しませんでした

netstat -ano | findstr <your port number>私には何も見せなかった。このコマンドを使用してポートが除外され、他の何かによって予約されている範囲を確認したことがわかりました。

netsh interface ipv4 show excludedportrange protocol=tcp

いくつかのポートの開始ポートから範囲のブロックを解除することができます(管理者によるコマンドプロンプトが必要です)。

netsh int ip delete excludedportrange protocol=tcp numberofports=<number of ports> startport=<start port>

しかし、私の場合、範囲のブロックを解除できず、「アクセスが拒否されました」というメッセージが表示されたため、サイト用に別のポートを選択する必要がありました。

私の元の解決策:機能したのは、ソリューションフォルダー内の.vsフォルダーを削除することだけでした。(それ以来、多くの設定が失われるのを避けるために、代わりに.vs / config / applicationhost.configを削除できることがわかりました)。


この解決策はうまくいくと思いましたが、それでもエラーが発生します。問題のポート(3333)がnetstat-aにまったく表示されていません。
クリスウォルシュ

1
@ChrisWalshこの問題は私に再発しました。なぜ追加情報が見つかったので、回答を更新しました。あなたは私と同じ船に乗っているかもしれません、港は使われていませんでしたが、他の何かによって予約されました(除外されました)。
ジョンレナード

2

タスクマネージャーを開き、「IISExpressシステムトレイ」と「IISExpressワーカープロセス」のすべてのプロセスを閉じて、プロジェクトを再実行します

タスクマネージャープロセスの詳細


2

Visual Studio 2015

  • VisualStudio内で開いているすべてのファイルを閉じます。
  • 次に、アプリケーションを閉じてVisualStudioを終了します。
  • Visual Studioを開くと、正常に実行されます。

これがお役に立てば幸いです。


2
これはポートとは何の関係もありません。質問を読んでください。
UmarZaii 2017

私はすでに質問を読んだ後、私だけがそれが私にも起こったと答えました、そして私は私が投稿に書いたのと同じことをしました、そしてそれは私のために働きます。
saurav singh 2017

それなら大丈夫だと思います。
UmarZaii 2017

これは私のためにそれを修正しました。Visual Studioを再起動するだけで、非常に多くの問題が修正されます。
CapnChaos

これは私のためにそれを修正しました。UmarZaiiが何について不平を言っているのかわかりません。
Artexias

2

私の場合、「指定されたポートは使用中です」エラーは通常、「インターネット接続の共有(ICS)」(SharedAccess)と「ワールドワイドウェブパブリッシングサービス」(W3SVC)サービスを停止することで修正されます(実際にはうまく機能します)。

プロジェクト/ ISS Expressの開始後、停止したサービスを問題なく再開できます。

エラーを受け取ったときはいつでも、ポート(50000の範囲)は確実に使用されていません(netstatとtcpviewで確認)。

MicrosoftがHyperVおよび「通常の」IISサービスと一緒にVisualStudio / IIS Expressの統合テストを行ったり、VS / IIS Expressに使用するポート範囲(および回避するポート)に関するガイダンスを提供したりすると便利です。


これは私の問題であり、ICSがnetstatまたはResource Monitorに表示されないため、追跡するのに永遠に時間がかかりました。ありがとう!愚かな$%@ * &&!)$ *!
James

これを投稿してくれてありがとう。これは私のために働いた唯一のものです。それは、Webアプリの開発に取り組んでから、Androidフォンのインターネット接続をUSB経由でコンピューターに共有することを選択したときに起こったと思います。そして、上記の<netsh http add iplisten ipaddress = ::>のアイデア(物事を壊して削除する必要がある)から、予約された範囲を削除しようとする(管理者としてもアクセスを拒否する)まで、すべてを試しました。再起動、Webブラウザの終了などは、これを試すまで機能しませんでした。ありがとうございました。
アリスタースミス

1

私にとって、GoogleChromeブラウザはポートを使用していたプロセスでした。Chromeを閉じた後も、プロセスが継続していることがわかりました(Chromeを「バックグラウンドで実行」して、デスクトップ通知を受信できるようにします)。タスクマネージャーにアクセスし、Chromeブラウザーのプロセスを強制終了してから、Webアプリケーションを起動しました。これは、魅力のように機能しました。


1

私の場合は、すべてのアプリケーションを閉じて、コンピューターを再起動します。

ウィンドウが起動したら、まずVisual Studioを開き、次にブラウザーを開いて[実行](F5)をクリックします。

今では動作します。理由はわかりません。


1

たとえばNotepad ++でcsprojを開き、DevelopmentServerPortまでスクロールダウンします。推奨されるように1024を超えている限り、別のものに変更します(たとえば、22312)。また、IISUrlをhttp:// localhost:22312 /に変更します。変更を保存して、プロジェクトを再起動します。


1

私の場合、指定されたポートを使用するアプリケーションはなく、VisualStudioの昇格された実行も役に立ちませんでした。

私にとってうまくいったのは、IIS Expressを再インストールしてから、コンピューターを再起動することです。


これは、VS 2017でWindows 10 1809年に私のために働いた唯一の選択肢だった
ホリスティック開発者


1

管理コマンドプロンプトで以下を実行して、このパラメーターを構成する必要があります。

netsh http add iplisten ipaddress = ::



0

使用中のポートなどのエラーを受け取った場合は、タスクバーの下部にある通知をクリックし、iissアイコンを右クリックして、[終了]をクリックします。これは、私にとって魅力的な機能です。


0

エラーメッセージは、どのアプリケーションがすでにポートを使用しているかを示しているはずです-私の場合はexplorer.exeだったので、タスクマネージャーからエクスプローラーを再起動しただけでした。


0

同じエラーが表示されました。IISでWebサービスをアプリケーションとして設定し、次の方法で修正しました。

ソリューション内のWebServiceプロジェクトを右クリック> [プロパティ]> [Web]> [サーバー]の下でIISExpressからローカルIISに変更します(必要な仮想ディレクトリが自動的に作成されます)


0

ポートxxxxがすでに使用されている場合は、常にエラーで作成されたPID(プロセスID)があります。アプリケーションを実行しているマシンのタスクマネージャーに移動し、詳細をクリックするだけで、他のアプリケーションが何であるかを識別できます。次に、そのプロセスを終了するかどうかを決定できます


0

これに加えて、自分のマシンの1つで完全なIIS機能をオンにしましたが、これが断続的に発生するようでした。

また、しばらくするとサイトをバインドするために管理者権限が必要であるという不満がランダムに出ました。どういうわけか、完全なIIS構成を調べていたと思います(ユーザーごとのファイルではないため、管理者が必要です)。

行き詰まっていて他に何も役に立たない場合(そして別のポートを選択したくない場合)、これが存在する場合は削除したことを確認してください。


0

FWIW、私はこれらのオプションをたくさん試しましたが、どこにも行きませんでした。その後、問題が発生する直前にVMWarePlayerをインストールしたことに気付きました。アンインストールしたところ、このエラーはなくなりました。

それらを共存させる方法はあると思いますが、Playerは本当に必要ないので、削除しました。あらゆる種類のものを試してもうまくいかない場合は、最近インストールしたプログラム(特にネットワークアダプターを処理するプログラム)を調べて、どこにでもアクセスできるかどうかを確認してください。


0

Visual Studio 2017で、[プロジェクト/プロパティ]を選択してから、[Web]オプションを選択します。デフォルトのプロジェクトURLの横にあるIISセクションで、[仮想ディレクトリの作成]をクリックします。これは私にとって問題を解決しました。私の場合、デバッグセッション後にデフォルトプロジェクトの仮想ディレクトリが何らかの方法で破損したと思います。


0

この問題を解決するには、次の手順に従います。

  1. 管理者モードで実行されているCMDを開きます
  2. 次に、コマンド netsh http add iplisten ipaddress = ::を実行します。

  3. プロジェクトを実行した後

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.