89

VS2012 で開発されたテスト ASP.NET MVC3 アプリケーションがあります。デバッグを開始すると、ホスト マシンから へのリクエストを介してアプリにアクセスしますhttp://localhost:<portnumber>。しかし、イントラネットのリモート マシンから同じアプリケーションにアクセスしようとすると、http://<ip>:<portnumber>IIS HTTP error 400: Bad request. Invalid Host Name.Express で実行されている限り、サーバー構成にアクセスできません。

これを解決する方法はありますか?

4

10 に答える 10

143

アップデート

プロセスをよりよく説明するビデオを作成しました、https://youtu.be/5ZqDuvTqQVs

Visual Studio 2013以降を使用している場合は、これを機能させるために管理者として実行していることを確認してください。


%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config(VS2015では$(solutionDir)\.vs\config\applicationhost.config)ファイルを 開きます。内部には次のようなものが表示されます。

<site name="WebSite1" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:8080:localhost" />
    </bindings>
</site>

をに変更bindingInformation=":8080:localhost"bindingInformation="*:8080:*"ます(ポート番号、私の場合は8080は異なります)。

注:機能しない場合はbindingInformation="*:8080:、アステリックスを削除してみてください。

次に、ファイアウォールがそのポートでの着信接続を許可していることを確認します。IISExpressに構成ファイルを再ロードさせるには、システムまたは少なくともVisualStudioを再起動する必要がある場合があります。

これが機能しない場合は、次の回答をご覧ください:https ://stackoverflow.com/a/5186680/985284

于 2013-03-21T03:13:34.980 に答える
15

Visual Studio を管理者として実行しないようにする方法

Garret@shangkeyun の両方の回答を使用すると、Visual Studio を管理者ユーザーとして実行しなくても、実行中の Web サイトに接続できます。

  1. 開ける%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
  2. を使用してサイトを検索しますname=MySiteName
  3. セクション内の既存の<binding>アイテムを複製し<bindings>ます。で 2 行が表示されるはずbindingです。
  4. bindingInformation の「localhost」の部分を削除します。
  5. ポートが であると仮定すると、次のようになります12345

    <binding protocol="http" bindingInformation="*:12345:localhost" />
    <binding protocol="http" bindingInformation="*:12345:" />
    
  6. 非管理者がポートにバインドできるようにする

    netsh http add urlacl url=http://*:12345/ user=Everyone
    

EDIT 2019: gregmac は、VS インスタンスをホワイトリストに登録する手順を追加しました。私はこれを必要としませんでしたが、とにかくリストします:

  1. netsh advfirewall firewall add rule name="IISExpress visualstudio app" protocol=tcp localport=12345 dir=in action=allow
于 2016-03-09T12:47:45.653 に答える
0

これは私のために働いたものです:

  • IIS マネージャーを起動する
  • プロジェクトフォルダーを指す新しい仮想ディレクトリを追加します(C:\VSProjects私の場合)
  • IIS マネージャー内の新しい仮想ディレクトリを選択します。Directory Browsingオプションのリストから選択します。右側にはEnableボタンがあります。クリックして。

を介して、ネットワーク上のフォルダーとプロジェクト ビンにアクセスできるようになりましたmypcname\VSProjects\myProj\outputBinViewer

于 2014-12-17T18:48:58.773 に答える
0

Visual Studio Codeでデバッグする非常によく似た問題があったため、次を追加して解決しました。

"env": {
      // ...
      "ASPNETCORE_URLS": "http://*:5000" // change to the port you are using
      // ...
},

.. launch.jsonへ

どうやら、デフォルトでは、http プロトコルを「localhost:5000」にバインドするため、localhostでは機能しますが、IP アドレスでは機能しません。リモートでもローカルでもありません。

別のコンピューターからのリクエストによってブレークポイントに到達しようとしている場合は、ファイアウォールの設定 (および/またはウイルス対策) を確認することを忘れないでください。

お役に立てれば

于 2018-03-17T18:28:56.307 に答える