web-dev-qa-db-ja.com

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

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.

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

68
Priya

から 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です。

99

同じ問題がありました。 Visual Studioを再起動しただけで機能しました。

24
MusicAndCode

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

したがって、[Windows OSの場合]だけ:

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

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

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

10

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

古いポート番号をgitから掘り起こし、IIS Express URLを変更してProject Settingsに含めるだけで修正できました。

2
Chris Moschini

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

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

2
singleTrackVale

別のアプリケーションがそのポートを使用しています。これはあなたを助けることができます

2
Kautsky Lozano

すべての答えを要約します。 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(メッセージは:URLの登録に失敗しました " http:// localhost:433/ "サイト" MyProject.Website0 "の場合...)。 notepad ++で次のファイルを開きます: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>

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

2
epox

Web Project Properties >> Web >> Project Url >> Change port ieに移動します: http:// localhost:22345 / => http:// localhost:22346 / このヘルプを願っています!

1
binhtruong.it

Netstatで競合が発生していなくても、この問題が発生しました。

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

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

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

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

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

1
djeastm

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

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

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

最終的に、netstatなしでfindstrを実行しようとしました。アクティブなポートのリストを視覚的にスキャンし、試したものはリストされていませんが、同様の範囲のポートを使用するプロセスがいくつかあることに気付きました。その代わりに、私は無料で、ポート番号を選んだ範囲を探しましたが、それは今は機能しているようです。

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

0
Phil

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

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

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

そして私の設定では、URLをhttp://localhost:1943/として設定しました

だから私は内部バインディングを削除してWebアプリを実行し、異なる番号で新しいバインディングを生成し、新しい生成されたポートを自分の設定にコピーして、エラーがなくなりました。

私はすでに次のことを試しました:

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

    netstat -aon | 「:80」を見つける

  • 私も使用してみましたが、ゼロの結果も返しました。

    netstat -ao | findstr

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

スクリーンショットは次のとおりです。

enter image description here

0
Willy David Jr

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

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

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