web-dev-qa-db-ja.com

ip:portではWEB APIにアクセスできませんが、VSデバッグモード中はlocalhost:portではアクセスできます

.netからWEB APIを記述しようとしており、AndroidアプリケーションがSQLサーバーデータベースからデータを照会しようとしています。

Web APIを作成しましたが、デバッグモードで正常に動作します。

私の質問は、そのアプリケーションのURLが_localhost:port_であり、正常に実行されることに気づいたことです。ただし、MYIP:port (eg. http:192.168.X.1234)またはMYHOSTNAME:port (eg win7home:1234)に変更しようとすると、_Bad Request - Invalid Hostname_になります。

これをIISにデプロイでき、IISがセットアップされていることは知っていますが、デバッグモードで機能しないのはなぜだろうと思っていました。

変更するたびにデプロイする代わりに、デバッグモードで実行し、Androidで同時にテストする方法はありますか?

34
noobiehacker

アントンとマシューの答えの両方が正しい方向を示してくれました

だからこれは私がやったこと

  1. 管理者モードでVisual Studioを実行する

  2. バインディングプロトコルを変更し、推奨される着信方向を許可 http://johan.driessen.se/posts/Accessing-an-IIS-Express-site-from-a-remote-computer

    しかし、その後、サービスを利用できません(503)エラーがあります

  3. だから私はこれに従った: IIS Express Enable External Request-5 ポートプロトコルとport:ipプロトコルだけを追加し、

それは私のマシンのブラウザと私の携帯電話の両方で動作します。

3番目のステップが必要な理由があまりよくわからない

16
noobiehacker

デバッグモードで実行している場合、IIS-Expressを使用していると思います。

デフォルトでは、IIS-Expressはlocalhostにのみバインドします。

これを回避するには、次の場所にあるIIS-Expressアプリケーション構成ファイルを開きます:C:\Users\<username>\My Documents\IISExpress\config\applicationhost.configおよびサイトのバインディング情報を変更します。

変化する

<binding protocol="http" bindingInformation="*:55284:localhost" />

<binding protocol="http" bindingInformation="*:55284:*" />

また、変更後にIIS-Expressを再起動する必要があります。

42
Matthew

Localhost IISを共有したいときに同じ問題が発生したため、一部の人はマシン名またはIPを入力してWebアプリインスタンスに接続できました。 http://johan.driessen.se/posts/Accessing-an-IIS-Express-site-from-a-remote-computer 。SilverlightアプリとMVCアプリの両方で機能します。ブレークポイントとリモートマシンからヒットします。

7
Anton

ソリューションディレクトリで、ファイル.vs\config\applicationHost.configの行を変更します

 <binding protocol="http" bindingInformation="*:1234:localhost" />

<binding protocol="http" bindingInformation=":1234:192.168.1.35" />

visual Studioを管理者として実行します。再起動IIS Express。このソリューションは私のために働きます。

2
Ahmad Aghazadeh

Visual Studio Codeでのデバッグと同じ問題があった場合、以下を追加して解決しました:

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

.. tolaunch.json

どうやら、デフォルトではhttpプロトコルを「localhost:5000」にバインドするため、localhostで動作しますがでは動作しませんIPアドレス

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

お役に立てれば

0