visual-studio android-emulator cassini iis-express loopback

visual studio - Android Emulator loopback a IIS Express no funciona, pero funciona con Cassini



visual-studio android-emulator (4)

Estoy intentando publicar datos de una aplicación de Android que se ejecuta en el emulador de Android en mi máquina local en una aplicación web que se ejecuta en IIS Express y que también se ejecuta en mi máquina local. Desafortunadamente, cuando publico en 10.0.2.2 desde el emulador, recibo un mensaje de error de Host Not Found .

Si configuro la aplicación web para que se ejecute en ASP.NET Dev Server (Cassini) en lugar de IIS Express, la aplicación de Android puede publicar sin problemas. ¿Qué configuración me falta para IIS Express que impide que funcione con un bucle desde el emulador de Android?


Agregue la siguiente línea al archivo de configuración del II (por ejemplo, c: / Users [YourName] / Documents / IISExpress / config / applicationhost.config) Cambie el puerto 8085 si es necesario.

<binding protocol="http" bindingInformation="*:8085:127.0.0.1" />

para que su archivo de configuración termine con algo como esto

<bindings> <binding protocol="http" bindingInformation="*:4396:localhost" /> // the existing one <binding protocol="http" bindingInformation="*:8085:127.0.0.1" /> // new line </bindings>

ahora puede llamar a su servicio web desde remoto llamando al puerto 8085

ex from android emu. new HttpPost("http://10.0.2.2:8085");


Concédete permiso para enlazar a adaptadores de red distintos de localhost, y configura IIS express para que se vincule a todos los adaptadores.

IIS Express aceptará conexiones del emulador de Android a través de 10.0.2.2. Si agrega una regla al firewall, también puede exponer IIS Express a su red, lo que disminuye la seguridad pero es útil para probar dispositivos físicos.

Detalles del paso: (suponen un número de puerto de 5555; use su puerto real en su lugar)

  1. Ejecute esto desde un símbolo del sistema como administrador:

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

  2. En % USERPROFILE% / Documents / IISExpress / config / applicationhost.config , reemplace el enlace de bindingInformation="*:5555:*" su sitio con bindingInformation="*:5555:*" . El resultado debería verse así:

<site name="..." id="..."> <!-- application settings omitted for brevity --> <bindings> <binding protocol="http" bindingInformation="*:5555:*" /> </bindings> </site>


Aquí está mi solución: estoy usando Visual Studio Express 2013 para la Web y mi servicio web RESTful se está ejecutando en IIS express. Cuando intenté acceder a mi servicio web utilizando un emulador de Android en la misma máquina, me dio este error de nombre de host no válido. Como sugerí en las respuestas anteriores, agregué nuevos enlaces a mi archivo applicationhost.config, pero aún así no funcionó. Por fin, pude solucionar este problema ejecutando Visual Studio "como administrador".


De forma predeterminada, IIS Express solo acepta conexiones de localhost. Para habilitar las conexiones desde dispositivos remotos (y el emulador cuenta como tal), use las instrucciones de aquí .

En breve:

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

Reemplace [machinename] y [port] con el nombre de su computadora (o IP no local) y el puerto en el que se ejecuta IIS Express.

Además, vea esta pregunta y esta.