「IIS Express Webサーバーを起動できません。」Visual Studio


103

Visual Studioを使用してWebサービスを実行しようとしました。私は次のような問題に直面しました:

---------------------------
Microsoft Visual Studio
---------------------------
Unable to launch the IIS Express Web server.

Failed to register URL "http://localhost:63591/" for site "xxxxxx" application
"/". Error description: The process cannot access the file because it is being
used by another process. (0x80070020)

---------------------------
OK   
---------------------------

タスクマネージャーを確認したところ、PID 4がシステムで使用されていることがわかりましNT Kernel & System.http service。すべての依存関係サービスが停止しました。しかし、私はhttpサービスを停止する際に問題に直面しています

The service is starting or stopping.  Please try again later.

そのため、サービスを手動で停止および開始しようとしました。ただし、終了プロセスは無効になっています。誰かがこの問題を解決できると助かります


1
Windowsの10を更新した後、問題を見て:developercommunity.visualstudio.com/content/problem/580466/...

回答:


127

https://www.davidsalter.co.uk/unable-to-launch-the-iis-express-web-server-error-0x80070020/から

エラーコードと0x80070020ERROR_SHARING_VIOLATION、IIS Express(またはIIS)の場合、リッスンしようとしているポートが別のプロセスで使用されていることを意味します。

netstatコマンドを使用して、ポートを使用しているアプリケーションを見つけます。

netstat -ao | findstr <port_number_to_search_for>

このaパラメータは、すべての接続とリスニングポートを表示するようにnetstatに指示します。

このoパラメーターは、接続に関連付けられているプロセスIDを表示するようにnetstatに指示します。

上記のnetstatコマンドを実行すると、次のような出力が生成されます。

C:\>netstat -ao | findstr 4026
TCP    12.0.0.1:4026        cs-pc:4026         LISTENING       9544

表示される最後の番号(ここでは9544)はプロセスIDです。


11
正解です。ソリューションを説明するだけでなく、パラメーターの意味も含めます。すべての答えがこのようであったらいいのに!
クリスチャンペイン

8
これは私を助け、問題のPIDはChrome.exeであることがわかりました。Chromeを再起動すると、問題は解消しました。
astrosteve 2016年

1
すばらしい答えです。これを使用して、Skypeがポート80とポート443の両方でリッスンしていることがわかりました。Skypeを強制終了すると、通常どおりiisexpressを起動でき、ポート80と443の追加バインディングが表示されます
Alastair

3
上昇CMDウィンドウで実行TASKKILL /PID 2756 /F置き換える2756あなたのプロセスIDで
stackoverfloweth

11
これは、-nスイッチでもかなり高速化できます。「数値」出力を使用するため、IPアドレスをホスト名に解決するためにDNSにクエリを実行する時間を無駄にしません。
Tullo_x86

45

Windows 10でVisual Studio 2019からプロジェクトを実行しようとすると、同様の問題が発生しました。ポートが別のプロセスによって使用されているため、アプリケーションを開始できませんでした。ただし、netstatコマンドはポートがどのアプリケーションでも使用されていないことを示しました。

2日間グーグルで過ごした後、私はうまくいく解決策を見つけました。私が使用しようとしていたポートは、次のコマンドを実行して確認できる除外されたポート範囲にありました:

netsh interface ipv4 show excludedportrange protocol=tcp

私の場合、これらのポートを予約した犯人はDocker for WindowsおよびHyper-Vでした

ソリューション

私はDockerをアンインストールし(必要なかったため)、Hyper-Vを無効にしました。Hyper-Vを無効にするには:コントロールパネル->プログラムと機能-> Windowsの機能をオンまたはオフにします。Hyper-Vのチェックを外し、コンピューターを再起動します。

再起動後、コマンド netsh interface ipv4 show excludedportrange protocol=tcpは予約済みのポートを表示しませんでした。

次に、管理者特権のコマンドラインから次のコマンドを実行して、アプリケーションのポートを除外されたポート範囲に追加しました。

netsh int ipv4 add excludedportrange protocol=tcp startport=50403 numberofports=1 store=persistent

次に、Hyper-Vを再度有効にし(必要に応じてDockerを再インストールできます)、コンピューターを再起動しました。

Hyper-Vは、アプリケーションが使用するポートを妨げることなくポートを予約するようになりました: 予約済みポート範囲


これは私にとってはうまくいきましたが、Dockerが必要なので、アンインストールする代わりに起動時に無効にしました。
cderrick

2
結局、ポートを除外範囲外に変更することになりました。しかし、これにより、時間を大幅に節約できました。ありがとうございました。
コリー

2
@Coryのように、ポートを範囲外に変更しましたが、これを行うたびに参照元のアプリを変更する必要がありますが、完全に再起動するよりは良いので困ります。
Nick Rubino

これを何年も探していました。どのアプリがポートを盗んだかを正確に判断する方法があるかどうか疑問に思っていますか?ありがとう。
Simon Mourier

Hyper-Vを無効にして再起動すると修正されました
カイルバーケット

30

私も同じ問題を抱えていました。Visual Studioを再起動したところ、うまくいきました。


1
コンピューターが更新から再起動し、netstatがポートを使用するプロセスを示していませんでした。これは機能する唯一のソリューションでした。ありがとう!
goodies4uall

1
私のマシンも再起動する必要がありました
Mahmoud Hboubati 2017

驚いたことに、Visual Studio(2017)の再起動もうまくいきました。ありがとう!
トーマスガスマン

私の場合、Windows 10のボックスはブルースクリーンになり、2回再起動する必要がありました。他のWebサイトプロジェクトは問題なく動作し(ローカルポートが異なる)、ここで他のどの回答も機能しませんでした。プロジェクトのポートを変更しても修正されませんでした。IIS Express自体に他の構成が必要です。
グレンジャー、

VS 2019でF5を使用したデバッグでプロジェクトを実行し、後でCtrl + F5を使用してデバッグせずにプロジェクトを実行しようとすると、これが発生するようです。再起動で修正されますが、最初からそれが起こらないようにしたいのですが。
pwhe23

27

同じ問題がありました。@Kautsky Lozanoが前述したように、別のアプリケーションがそのポートを使用しています。

したがって、[Windows OSの場合]は次のようにします。

  • リソースモニターを開く(タスクマネージャー->パフォーマンス->リソースモニターを開く)
  • [ ネットワーク ]タブをクリックします。
  • そしてTCP接続で、IIS Expressが使用するローカルポートを使用するアプリケーションを見つけて閉じます。(私の場合はFirefoxでした)

完璧に働きました!
Al Belmondo

12

Visual Studio 2012から2015にソリューションをアップグレードした後、私は同じ問題に遭遇しました。私はここに来netstatて、他のアプリケーションが同じポートを使用していないことを発見しただけでした。それは私が同じにマッピングされたポートと同じ部位だったが判明したapplicationhost.configUsers/<username>/Documents/IISExpress/configapplicationhost.configでは.vsフォルダ私の解決策の内側を。アップグレード直後にも問題は発生しなかったことに注意してください。ある朝、一貫して失敗し始めます。再起動を数回行っても問題は解決しないようです。

ドキュメントに保存されているサイトから競合するサイトを削除してVisual Studioを再起動すると、問題は解決しました。


これは、私を助け:applicationhost.configである.vs\configソリューションフォルダの下にフォルダ。
Erik Oppedijk 2017年

6

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>

私にとっては、これらのブロックを解除できなかったため、「アクセスが拒否されました」と表示されたため、サイト用に別のポートを選択する必要がありました。



3

netstatが競合を示していなくても、この問題が発生しました。

以下は私のためにそれを修正しました:

  1. Visual Studioを閉じる
  2. エクスプローラーを開く
  3. 問題のあるプロジェクトのフォルダに移動します
  4. objおよびbinフォルダーを削除する
  5. * .userファイルを削除します(これはおそらくオプションです)
  6. Visual Studioを再起動してもう一度お試しください

2

MVCプロジェクトのアップグレード時にこの問題が発生しました。新しいMVC .csprojを既存の.csprojファイルにコピーしてから、完全に機能するプロジェクトに戻しました。私が検討に失敗したのは、古い.csprojの既存のポート番号です。新しいプロジェクトには新しいポート番号がありましたが、プロジェクト/アセンブリ名は共有されていました。IIS Expressが気を失い、この例外をスローするにはそれで十分でした。

古いポート番号をgitから掘り下げ、IIS ExpressのURLを変更してプロジェクト設定に含めるだけで、問題を修正できました。


2

コマンドコンソールにアクセスせずにこれで最も簡単な最初のパスは、すべてのアプリケーション(VSを含む)をシャットダウンし、VSを単独で起動して再試行することです。ブラウザのような別のアプリケーションが競合を引き起こしている可能性があります。私の場合、Chromeが原因でしたが、すべてをシャットダウンしてVSを再起動すると解決しました。もう一度Chromeを開いたところ、すべて問題ありませんでした。

上記のnetstatのものは便利ですが、私にとっては、私が提案していることを実行できない場合のみです。


2

すべての回答を要約します。2つの解決策があります。どちらもうまくいきました。- 解決策#1同じポートを使用するアプリを強制終了します。- 解決策#2プロジェクトに別のポートを使用するようにIIS Expressを構成します。

解決策#1 (エラーメッセージのポートが443であると想定)コマンドラインで実行します。

netstat -ao | findstr 443

それが返す:TCP 0.0.0.0:443 pe01:0 LISTENING 2904 最後の番号(@ chris-schiffhauerに感謝)は、PIDを強制終了します。タスクマネージャー->プロセス-> [すべてのユーザーのプロセスを表示]に移動し、PID = 2904のプロセスを強制終了します。私の場合、それはVmWareホストでした。

解決策#2 (メッセージは次のとおりです:サイト "MyProject.Website0" ...のURL " http:// localhost:433 / "の登録に失敗しました)。notespad ++で次のファイルを開きます。次C:\Users\MY_USER_NAME\Documents\IISExpress\config\applicationhost.configの行を含む行を見つけます。

<site name="MyProject.Website0" id="...
...
            <bindings>
                <binding protocol="http" bindingInformation="*:80:localhost" />
                <binding protocol="https" bindingInformation="*:443:localhost" />
            </bindings>

競合するタグ433などの別のものに変更するか、4330削除し<binding.../>ます。


2

私の場合、次のことを行うとうまくいきました:

  • .vs \\ config \ applicationhost.configからサイトを削除します
  • Documents \ IISExpress \ config \ applicationhost.configからサイトを削除します
  • IISUrlを.csprojから削除します

Visual Studioを再起動すると、プロジェクトに完全に新しいポート番号が割り当てられ、完全に実行されました


2

ポート番号が一致しません

私の場合、問題は、ソリューションフォルダーの下の.vsの構成ファイルにあるバインディングタグにあり、ポート番号が一致しませんでした。バインディングは次のとおりです

<bindings>
     <binding protocol="http" bindingInformation=":16433:localhost" />
</bindings>

そして私の設定では、URLを次のように設定しました http://localhost:1943/

だから私はバインディング内部を削除して私のウェブアプリを実行することでした、そしてそれは別の番号で新しいバインディングを生成し、そして私は私の生成された新しいポートを私の設定にコピーしました、そしてエラーは消えました。


今回(私は以前にこの問題に遭遇したことがあり、それはここでさまざまな回答で提示された多くの原因の1つでした)これが原因でした。
gburton

2

Windows 10またはVisual Studio 16以降を更新した後、内部のバグが原因で、IISExpressがlocalhost接続を受け入れなくなったために開発用Webサイトを登録できない場合があります。

この問題を修正するには、バインディングを再度登録する必要があります。これを行うには、管理シェルから次のコマンドを実行します。

netsh http add iplisten ipaddress=:: 

それは私のために働いた、たくさんありがとう!
Jakub Szumiato


1

<site>から</site>タグまでをすべて削除することでこの問題を解決できました

Users/<username>/Documents/IISExpress/config/applicatiohost.config ファイル

<sites>
  <site>
     .
     .   ===> remove this content including the <site> and </site> tags.
     .
  </site>
</sites>

1

この同じ問題を修正しようとして半日無駄にしたので、最終的にはうまくいく解決策を追加する必要があると感じました。

TL; DRnetstat問題のあるものが使用されていないことを示している場合でも、まったく異なる範囲で他のいくつかを試します。

以前にこの問題に遭遇したことがありますが、通常はVisual Studioの再起動、ポートの変更(1ずつ増加)、または再起動でうまくいくことがわかります。しかし、今回はこれは何の役netstatにも立たず、矛盾するプロセスを見つけることもありませんでした。IISとVisual Studioを再インストールし、干渉していると思われる他のプログラムをいくつか削除しました。IISが同じサイトの複数のインスタンスを起動しようとしているように見えました。

結局、netstatなしで走ってみましたfindstr。アクティブなポートのリストを視覚的にスキャンしたところ、試したものはリストされていませんが、同様の範囲のポートを使用するプロセスがいくつかあることに気付きました。そこで、代わりに、空いている範囲を探し、ポート番号を選択しました。これで、現在は機能しているようです。

これがうまくいったかもしれない理由を誰かが説明できるかどうか聞きたいです。


この解決策によっても修正されました。
Rastographics

1

今日、Visual Studio 2019でこの問題に遭遇し、3時間を費やして最終的に問題を解明しました。Visual Studioは2つのファイルを使用してSSLポート番号を追跡するため、両方を修正する必要があり、Visual Studioが閉じている間に両方を修正する必要があります。2つのファイルは、ソリューションの.vs \ ??? \ configフォルダーにあるapplicationhost.configファイルです。また、Webプロジェクトの.csproj.userフォルダー。両方のファイルを編集し、問題の構成を削除します。多分ちょうど両方のファイルを削除します。次に、Visual Studioでアプリを再度開きます。幸運を!


ソリューションにプレーンな旧式のWebサイト(Webアプリケーションではない)が含まれている場合、ポート番号もソリューションファイル.slnにあります
nuander

1
  1. ビジュアルスタジオを閉じる
  2. 「.vs」フォルダを削除
  3. ポート「localhost:8080」を変更してみてください

それは私のために働いた。


1

@Zotiの指示に従い、リソースモニターを使用して問題のポートを見つけました。

Outlookの通信チャネル用のポートがランダムに割り当てられていることが判明しました。物語の道徳は、絶対に何でもかまいません。


1

このエラーの理由は、アプリケーションに間違ったポート番号を指定したことです。

just use http ports for your application to run

8080番号に近いポートを使用します。つまり、

localhost:8090

Visual Studioでアプリケーションのポートを変更するには

goto project properties > web > Server > ProjectUrl


0

私はすでに以下を試しました:

  • Visual Studioを再起動しました
  • 特定の番号をリッスンしている可能性のあるすべての使用可能なポートを確認しますが、常に結果がゼロになります。ポートで待機しているプロセスはありません。
  • 私もこれを使ってみましたが、結果はゼロです。

    netstat -aon | 「:80」を検索

  • 私も使用してみましたが、結果はゼロです。

    netstat -ao | findstr

だから私がやったことは、この「Microsoft.VsHub.Server.HttpHostx64.exe」を削除してから、私のプロジェクトが正常に開始され、ブラウザで起動します。エラーが修正されました。理由はわかりませんが、うまくいきます。

これがスクリーンショットです:

ここに画像の説明を入力してください


0

同じ問題がありましたが、管理者権限を使用して再起動すると解決しました。(再始動したばかりかもしれません)


0

今日も同じ問題があり、インターネットで見つけたものは何もうまくいきませんでした。ポート2057を何年も使用していますが、突然機能しなくなりました。2058のような別の低い数値に変更すると、同じエラーメッセージが表示されましたが、20057に変更すると、すべてが再び機能しました。低いポート番号の処理方法が変更された可能性があります。

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