web-dev-qa-db-ja.com

ASP.NET 5 MVC:Webサーバー「IIS Express」に接続できません

私がやっていること:

  • Visual Studio Community 2015を開く
  • ファイル - >新規作成 - >プロジェクト
  • [Visual C#]の下:[Web] - > [ASP.NET Webアプリケーション]
  • ウェブアプリケーション
  • そしてポップアップエラー「f5を押してください。 ウェブサーバー 'IIS Express'に接続できません。

applicationhost.configにあるDocuments\IISExpress\configを削除しても、エラーメッセージは変わりません。 (program filesprogram files (x86)にもIISExpressフォルダーがあります。)

私が気づいたこと、そしてそれが問題であるかどうかはわかりません。

参照ファイル 'lib/jquery-validation/jquery.validate.js'が見つかりません。

Rawcapでダンプを取ったのですが、そこにはあまり気付きません。そこにあったもののいくつか:

"Framework":{"FrameworkName": "DNXコア、バージョン= v5.0"、 "FriendlyName": "DNXコア5.0"、 "ShortName": "dnxcore50"、 "RedistListPath":null}

私は問題に気付いていませんが、ネットワークデータがあるのであれば、なぜWebサーバーに接続できないのかを突き止めることができます。私はすぐにRST,ACKを受け取るので、ポートは閉じられていて、このWebサーバーが何であれ、セットアップされていないと思います。

この問題の詳細:/ traceからの 800700c1エラー:error

私はもう試した:

  • applicationhost.configの削除(およびポート番号の変更)
  • 管理者としてのVisual Studioの実行
  • documents内のIISExpressフォルダを削除する(フォルダが再インストールされるまでエラーメッセージを変更する)
  • sslのオン/オフを切り替え、urlを起動ボックスにコピーします。 (注:私はSSLを使用していません)
  • sfc/scannowエラーをすべてクリアする
  • x86バージョンおよび64ビットバージョンでiisexpressを起動する
106
Sarek

Visual Studio 2015用のUpdate 2をインストールした後、私は同じエラーを受け始めました。私は運なしで上記のすべてを試しました。しかし、私は私のために働く解決策を見つけました:

  1. YourSolutionFolder\.vs\config\applicationhost.configファイルを削除します(注:.vsは隠しフォルダです)。
  2. Visual Studioを開き、Webサイトを右クリック> [プロパティ]> [デバッグ]タブ> [Webサーバー設定]> [アプリURL] - ポート番号を変更します。
165
Victor Stagurov

VSを終了し、(project).vs\applicationhost.configファイルを削除します。 VSを再起動します。それは働き始めるはずです。

126
dwoodard

別のポートを使ってみてください。私はちょうど新しいCore 1.0 RC1プロジェクトを立ち上げて、同じエラーを得ました。

  • Webプロジェクトを右クリック
  • デバッグタブ
  • SSLの有効化のオン/オフを切り替えると、新しいランダムポートが生成されます。
  • SSL URLをコピーして[起動URL]ボックスに貼り付けます
  • プロジェクトを実行する

私のために働きました(TM)。

からの答え: https://stackoverflow.com/a/28650554/134761

enter image description here

19
angularsen

プロジェクトのポート番号を更新すると、。net core 2.0でこの問題に直面しました。

私は2つのステップで問題を整理することができました:

  • ステップ1:メインソリューションフォルダ内に隠れている.vsフォルダを削除します。 (この前にビジュアルスタジオを閉じてください)そしてあなたがビジュアルスタジオを再び始めるとき、その中のこのフォルダーとファイル(applicationhost.config)はビジュアルスタジオによって自動的に作成されます。
  • ステップ2:複数のスタートアッププロジェクトの場合、それでも問題が解決しない場合は、プロジェクトを1つずつスタートアップとして実行してから、複数のスタートアッププロジェクトとして実行します。
17
Saurin Vala

VSプロジェクトを閉じるファイルエクスプローラで、プロジェクトに移動して ".vs"フォルダ全体を削除します。プロジェクトを再起動します。 "Debug"として実行します。明らかに、 "applicationhost"と関係があります。 .config "ファイル。

楽しい!

9

私の場合は、IIS Expressが接続しようとしているのと同じポートで他のアプリケーションがlistenしていました。同じポートとシャットダウンアプリケーションを使用しているプロセスのPIDを確認するには、netstat -aoを実行する必要があります。私の場合、アプリケーションはViberでした。

7
codevision

プロジェクトフォルダからbinフォルダとobjフォルダを削除して再構築します。

6
Muhannad

管理者権限でVisualStudioを実行してプロジェクトを実行します。その後、VisualStudioとすべてのエラーを閉じて、通常のユーザーでVisualStudioを再度実行します。

これは私のためにそれをやった。

IISは管理者権限で設定に何か書き込みをしなければならないようです(ポート80は普通のユーザーではうまくいきませんでしたがポート6767はうまくいきました)。

5
Tadej

私はこれと同じ問題を抱えていました、しかし私がそれを直す方法はapplicationhost.configに行き、私が特定のポートサイトを別のポートに置いた私によって追加されなかったポートを取り除くことでした。

これが私のバインディング用の設定ファイルです。

<bindings>
      <binding protocol="http" bindingInformation="*:54764:localhost" />
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

私が欲しかった唯一のポートが44360だったので、私は最初のバインディング項目を削除しました。私の設定ファイルは今このようになっています:

<bindings>
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

デバッグしてもエラーが表示されません。

私のプロジェクトの2番目のAPIにもポート80が割り当てられていることに気付いたので、それも削除しました。

5
Jeff

私は一つのことを変えることによってこのエラーを切り替えることができました。私のASP.Net Core 1.0 RC2 WebアプリケーションプロジェクトのlaunchSettings.jsonファイルで:

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "https://localhost:18177/",
      "sslPort": 0
    }
  },

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:18177/",
      "sslPort": 0
    }
  },

私はそのプロトコルを使ってプロジェクトを実行しようとしてhttpsに変更しました。どうやらこれはその変更を加えるための場所ではありません。同じポートに複数のバインディングを作成しているのではないかと思いますが、IIS Expressはそれを好まないのです。

4
redwards510

ビジュアルスタジオを閉じて、再度開いて実行してください。それは私のために働きました。

4
T-Jayanth Dore

私がapplicationhost.config内に新しいバインディングを追加するとすぐに私の処理が起こります。管理者が問題を解決したので実行します。

3
goamn

私は同じ問題を抱えていた、私はポート番号を変更することによってそれを解決することができました。

  1. プロジェクトを右クリックしてプロパティを選択します。

  2. デバッグセクションに移動します

  3. [Webサーバーの設定]で、アプリのURLポートを変更します[1つずつ増やします:)]。

enter image description here

3
Akbar Badhusha

Program.csに.UseUrls("https://localhost:<some port>/")を追加しました。これは私のためにトリックをしているようでした!

3
Helzgate

私は私のコンピュータを再起動することによってこれを解決することができました。私はいくつかの試みに失敗し、ついに私のコンピュータをあきらめて再起動した。私が再起動してから数日の間、それは今よく働いています。おそらくハングアップしたプロセスの結果です。

2
Keenan Stewart

私はちょうど同じ問題に遭遇しました、そして私はまだ走っていたすべての "iisexpress.exe"プロセスを殺しました。それは私のために働いた!

2
SynD

私はMSのバグがこの問題を引き起こすものを完全に理解するふりをするつもりはないが、これは別の潜在的な解決策である:

.vs/config/applicationHost.configファイルで、<system.applicationHost><applicationPools>のセクションを見つけます。プールの下で、managedRuntimeVersion属性値がシステム(および/またはインストールされている.NET Frameworkのバージョン)のIIS configにある値と一致することを確認します。

たとえば、(私が行ったように)生成されたファイルには以下のものがあることがわかります。

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

私の場合は、これを次のように置き換えます。

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0.30319" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

"v4.0"から "v4.0.30319"への置き換えに注意してください。これで問題は解決しました。


何が起こっているように見えます:

私は、VSが.NETフレームワーク用の「デフォルト」バージョンのapplicationHost.configファイルを生成していると信じています。これは、システムにインストール/設定されている特定のバージョンと一致しない場合があります。 Process Monitorで実行を追跡し、iisexpress.exeのコマンドラインを見つけることで、この問題をデバッグまたは確認できます。 /trace:errorを追加してこのコマンドを実行すると、バージョンv4.0でCLRをプリロードできなかったことに関するより有益なメッセージが表示されます。目撃するには:

IIS Express ...を起動しています...
CLRバージョンv4.0をプリロードしようとして失敗しました。 hr = 80131700
W3WP_Hostの初期化に失敗しましたhr = 80131700
プロセスモデルのシャットダウンが呼び出されました
iisexpressを起動できません。


とにかく、これは他の誰かに役立つかもしれないと考えました。悪い情報を含む複数の参照をオンラインで持っていることが十分に一般的であるので、私は今個人的にそれを数回ヒットしました。

2
Nick

私のプロファイルを "IIS Express"から "MyProjectName"(IISの代わりにkestrelをhttpサーバーとして使用していると思います)に変更したところ、今では問題なく動作しています。

enter image description here

2
Tadej

私にとって問題は、他のプロセスが同じポートを使用していたことです。 (私の場合は、私のサイトと同じポートを使用していたため、私のサイトを起動できなかったのはOutlookでした)

はい、ローカルポートを変更することはできますが、APIや他のアプリケーションが必要とするものを実行している場合は、必ずしもこれを実行する必要はありません。

どのアプリケーションがどのポートを使用してCMDを開いているかのリストを取得するには、「netstat -aon」と入力します。ポートのリストが表示されます。あなたのサイトが使うべきであるか、あなたが使いたいポートを見つけて、PIDを書き留めてください。

今タスクマネージャを開き、タブ「詳細」をクリックしてください。あなたのPIDでプロセスを見つけてそれを終了します。これでIIS Expressをそのポートで起動できるはずです。

2
Enrico

私は.netコア2.1、ビジュアルスタジオバージョン15.9.6でこの問題を抱えていました。 .vsフォルダを削除したとき、私はビジュアルスタジオを再開しました、そして問題はまだそこにありました。私のために働いた解決策は以下のとおりです。

  1. .vsフォルダを削除します(これは隠しフォルダです)。
  2. コンピューターを再起動。
2
Daniaal

ビジュアルスタジオを管理者として実行するだけです。

2
Abdul Rauf

それが働いていて突然停止した場合は、まずこれを試してください。

  • Visual Studioを閉じる
  • Iisexpress.exeプロセスを強制終了する
  • Visual Studioを再度開く
2
Simon_Weaver

私の解決策(.net core 2.0用)は、launchSettings.jsonのiisExpressの下で、applicationUrlにポート番号を追加するのを忘れていたというものでした。

"iisExpress": {
  "applicationUrl": "https://localhost:50770",
  "sslPort": 50770
}
2
Numm3n

Cmdで試す

taskkill /im iisexpress.exe /f
taskkill /im dotnet.exe /f

そしてf5を押します。ポートの変更、ファイルの削除、VSの再起動はしません。

1
D. Nikitin

私は単に「SSLを有効にする」に切り替えました。これで私の問題は解決した。

  1. Webプロジェクトを右クリック
  2. デバッグタブ
  3. [SSLを有効にする]をオンに切り替えます(オフの場合、これが私の場合でした)。
1
Harun Altay
  1. ローカルマシンで管理者としてサインインする
  2. 管理者としてVisual Studioを開く
  3. プロジェクトフォルダー内のbinフォルダーと.vsを削除する
  4. {users}\Documents\IISExpressのすべてのファイルを削除します

根本的な問題は私にとっての許可だと思います

1

何が問題の原因となっているのかわかりませんでした。しかし、 修復インストール で修正しました。

1
Sarek

私にとって、IIS Expressは、DOSプロンプトでiplistenを次のように追加したときにアクセスできませんでした:netsh http add iplisten MyIPAddress。私はこのようにiplistenを削除することでそれを修正しました:netsh http delete iplisten MyIPAddress

1
Jason J. Lee

私にとっては、以下の 指示 が混在していました。

Webアプリケーションの.vs\applicationhost.configを削除してやり直してください。

そして、おそらく最も重要なのは、管理者権限でVisual Studioを実行することです。

1
contactmatt

次のレジストリキー\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyListに、使用しているコンピュータの有効なネットワークアダプタにバインドされていないIPアドレスが含まれていないことを確認してください。

この質問[SOおよび他の多くの質問にリストされている他のさまざまな解決策を試みた後、これが私の問題の原因でした。

  1. Applicationhost.configを削除する
  2. SSLのオンとオフの切り替え.
  3. ポート番号を変更しています。
  4. IIS Expressプロセスを手動で強制終了しました。
  5. IIS Expressを再インストールしています。
  6. Visual Studioを修復します。
  7. 新しいバージョンのVisual Studioをインストールする
  8. 新しい.Net Framework Webアプリケーションを作成する.
  9. 新しい.Net Core Webアプリケーションを作成する.
  10. Netsh urlaclコマンドを実行する
  11. Netsh http add iplisten ipaddress = ::を実行します。
  12. 管理者としてのVisual Studioの実行.
  13. 適用された場合にバイパス通過権限を保証する.

どうやら、IIS expressが起動しようとしたとき、この無効なIPにバインドしようとしていました。修正は無効なIPを削除することでした。職場で私はハードワイヤードアダプタを介して別のIPを割り当てられている間、この追加の無効は、おそらく私の家の無線ネットワークから来ました。

包括的な解決策は、レジストリキーからすべてのIPを削除し、すべてのアドレスで待機できるようにnetsh http add iplisten ipaddress=::を実行することです。

次のイベントログエントリに気付いた後、この問題を突き止めることができました。

  • IIS Express:アプリケーションプール 'WebApplicationNetCore AppPool'のワーカープロセス(PID = '23260')は、開始を要求されたときにhttp.sys通信を初期化できませんでしたhttpリクエストを処理しているため、W3SVCによって問題があるとみなされて終了します。データフィールドにはエラー番号が含まれています。
  • IIS Express:ワーカープロセスが正しく初期化されなかったため、起動できませんでした。データはエラーです。
  • HTTPイベント:192.168.1.42:52999の基になるトランスポートにバインドできません。 IP Listen-Onlyリストには、このマシンには存在しない可能性があるインターフェイスへの参照が含まれている可能性があります。データフィールドにはエラー番号が含まれています。
0

問題は、プロジェクトで[√] Enabled SSLが選択されていたため(プロジェクト設定ウィンドウのDebugタブを参照)、Visual Studioがダムでhttp://localhost:32396のような設定になっていることが原因と考えられます。それが失敗する理由は、1. HTTPSではなく、2.証明書が無効であるためです。それを強制するには、44300から44398の範囲のポートを使用する必要があります。

https://stackoverflow.com/a/24957146/1236397 を参照してください。

0
James Wilkins

そして同じエラーを起こすもう一つの方法:

IPアドレスとして0.0.0.0を使用します。これは本番環境ではうまく機能しますが、IIS Expressでは失敗し始めました。これをdevのlocalhostに戻して問題を解決しました。

0
Johny Skovdal

明確にする

本当にここの答えの多くは同じで、「再起動して魔法のようにうまくいきます」のようなものを言います。

10回のうち9回の人がこの問題をOPのように感じています。IP-ADDRESS ISすでに使用されているからです。

ANSWER

使用中の2つのIPアドレスがある可能性があります。どちらもあなたが見つけることができます:

1)スタートアッププロジェクトを右クリック

2)「プロパティ」をクリック

3)[デバッグ]タブをクリックします

ここにあなたの "App URL"と "SSL URL"が表示されます。

  • あなたの "App URL"が使用されている場合は、それをそこに変更して保存するだけで再び機能するはずです。

  • 「SSL URL」が使用されている場合は、VSを閉じ、プロジェクトの隠れた.vsフォルダにある「applicationhost.config」ファイルを削除して、VSをもう一度開きます。

0
Svenmarim

Windows 10 Defender Firewallがそれをブロックしていました。私はそれをオフにし、mvc core 2.0アプリケーションを実行しました、そしてそれはうまくいきました。私はその後、Windowsファイアウォールを再びオンにしても機能し続けました。他のすべての解決策はよく考えられていましたが、うまくいきませんでした。これが誰かに役立つことを願っています。

0
Michael Karaz

これらの回答の多くは、当面の問題に完全には対応していません。私にとって本当の問題は、applicationhost.configファイルで同じポートを使用して2つのバインディングがあり、2番目の(localhostではない)バインディングに対してポートを開いていないことでした。 VSでは、これらの状況でも実行できますが、管理モードになっている場合のみです(したがって、上記のすべての回答)。

基本的に、同じポートでアプリの2つのIIS Expressインスタンスを作成しているので、applicationhost.configファイルのポートの1つを変更することで続行できます。ただし、2つの異なるapplicationhost.configファイルがあります。プロジェクトのプロパティに表示されるバインディングIPとポートを持つものを選択します。

enter image description here

プロジェクトソリューションとプロジェクトフォルダーを表示できるフォルダーに移動します(エクスプローラーで非表示のアイテムを表示します)。非表示の.vsフォルダー-> "YourAppName"フォルダー-> configに移動します。プロジェクトのプロパティで見たバインディング情報が含まれている必要があります。

例:

<bindings>
    <binding protocol="http" bindingInformation="*:7000:127.0.0.1" />
    <binding protocol="http" bindingInformation="*:7000:192.168.0.5" />
</bindings>

これらのポート番号のいずれかを「7000」以外に変更して、同じポートを使用しないようにします。

私の場合、ローカルホストアドレスではない192アドレスを使用しているため、いくつかのnetshコマンドを使用してそのポートを開き、IPを起動する必要があります。 リンク は、IIS Expressのポートを開いてリモート接続を許可する方法を示しています。リストされているこれらのnetshコマンドを実行しない限り、通常のユーザーとして実行することはできません。

Netshコマンドは次のとおりです。

  1. netsh http add urlacl url = http://192.168.1.42:58938/ user = everyone
  2. netsh advfirewall firewall add rule name = "IISExpressWeb" dir = in protocol = tcp localport = 58938 profile = private remoteip = localsubnet action = allow

これらのコマンドをコピーし、ADMIN特権とYOUR IPアドレスとポート番号を使用してcmdで実行します。

0
MedievalCoder

私はVisual Studio 2017のインストールを修復し、それは再び働いた

0
Braytiner

私はVS2017を使用しています、私は無効にするTool > Options > Debugging > Enable JavaScript debugging for ASP.NETそれから動作します。

0
yu yang Jian

すべてのポート番号を、動作中のシリーズの新しいものに変更するだけです。アプリケーションのHost .configを変更しないでください。

以下の場合、 enter image description here 現在のプロジェクトソリューションディレクトリ> .vs> configに移動してapplicationhost.configを削除し、VSを再起動して問題なく通常どおり実行します。

.vsは隠しフォルダです。

0
AjayCodes