14

ローカル マシンの Android Emulator で実行されている Android アプリケーションから、同じくローカル マシンで実行されている IIS Express で実行されている Web アプリケーションにデータを送信しようとしています。残念ながら、エミュレータから 10.0.2.2 に投稿すると、Host Not Foundエラー メッセージが表示されます。

IIS Express ではなく ASP.NET Dev Server (Cassini) で実行するように Web アプリケーションを構成すると、Android アプリケーションは問題なく投稿できます。Android エミュレーターからのループバックでの動作を妨げている IIS Express の構成が不足していますか?

4

5 に答える 5

19

localhost 以外のネットワーク アダプターにバインドする権限を自分自身に付与し、すべてのアダプターにバインドするように IIS Express を構成します。

IIS Express は、10.0.2.2 経由で Android エミュレーターからの接続を受け入れます。ファイアウォールにルールを追加すると、IIS Express をネットワークに公開することもできます。これにより、セキュリティは低下しますが、物理デバイスのテストには役立ちます。

手順の詳細: (ポート番号は 5555 と想定されています - 代わりに実際のポートを使用してください)

  1. 管理者としてコマンド プロンプトからこれを実行します。

    netsh http add urlacl url=http://*:5555/ user="NT AUTHORITY\INTERACTIVE"

  2. %USERPROFILE%\Documents\IISExpress\config\applicationhost.configで、サイトの localhost バインディングを に置き換えますbindingInformation="*:5555:*"。結果は次のようになります。

    <site name="..." id="...">
        <!-- application settings omitted for brevity -->
        <bindings>
            <binding protocol="http" bindingInformation="*:5555:*" />
        </bindings>
    </site>
于 2013-09-23T12:08:15.623 に答える
7

既定では、IISExpressはローカルホストからの接続のみを受け入れます。リモートデバイスからの接続を有効にするには(およびエミュレーターはそのようにカウントされます)、ここからの手順を使用してください。

要するに:

netsh http add urlacl url=http://[machinename]:[port]/ user=everyone
netsh http delete urlacl url=http://[machinename]:[port]/

[machinename]コンピュータ名(または非ローカルIP)と[port]IISExpressが実行されているポートに置き換えます。

また、この質問とこれを参照しください。

于 2011-05-31T20:37:55.233 に答える
0

私の解決策は次のとおりです。Visual Studio Express 2013 for Web を使用しており、RESTful Web サービスは IIS Express で実行されています。同じマシンで Android エミュレーターを使用して Web サービスにアクセスしようとすると、この無効なホスト名エラーが発生しました。上記の回答で示唆されているように、新しいバインディングを applicationhost.config ファイルに追加しましたが、それでも機能しませんでした。最後に、Visual Studio を「管理者として」実行することで、この問題を修正することができました。

于 2014-12-10T01:06:02.650 に答える