Depuración de una aplicación ASP.NET MVC en un teléfono Android

Objetivo

Estoy buscando el proceso de instalación más sencillo, paso a paso para depurar mi aplicación ASP.NET MVC 4 utilizando mi dirección IP como URL. Quiero poder acceder a la aplicación desde mi teléfono Android, que está conectado a mi red local a través de Wi-Fi, usando la dirección IP local de mi computadora (por ejemplo, http://192.168.1.109:25968 ). Estoy ejecutando Visual Studio 2012 RC en Windows 7.

Esta pregunta ha sido abordada por otras dos preguntas ( ésta y esta ), pero las respuestas son muy breves y no me están ayudando en absoluto. He tenido que resolver este problema antes golpeando en mi computadora y sin pensarlo cambiando cada ajuste hasta que algo funcionó. No quiero tener que pasar por eso de nuevo. Quiero entender lo que estoy haciendo esta vez.

Información de configuración

El proyecto es sólo una aplicación de Internet ASP.NET MVC 4 predeterminada. Estoy seguro de que todavía no he cambiado nada.

La ficha Web en Propiedades de mi aplicación se establece en "Usar servidor Web de IIS local" y tengo "Usar IIS Express" activado. El url del proyecto es http://localhost:25968/ . Veo que el "locahost" puede haber un problema, pero VS no me deja poner en una dirección IP o comodines.

Mi archivo applicationhost.config de IIS Express para mi aplicación son los siguientes.

 <site name="APPLICATION_NAME" id="13"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\Users\USERNAME\Documents\Visual Studio 11\Projects\APPLICATION_NAME" /> </application> <bindings> <binding protocol="http" bindingInformation="*:25968:localhost" /> </bindings> </site> 

Que está pasando

Cuando me conecto al sitio desde el ordenador host con http://localhost:25968 funciona muy bien. Si intento utilizar http://192.168.1.109:25968 de la computadora de anfitrión, consigo la "petición incorrecta – nombre de anfitrión no válido, error 400 del HTTP. El nombre de anfitrión de la petición es inválido." Usando esta misma URL desde otro equipo de la red, sólo se agota.

Concede permiso para enlazar a los adaptadores de red localhost y comodín, configurar IIS Express para enlazarlos y abrir el puerto en su firewall. Al usar un comodín, no es necesario reconfigurar cuando cambia la dirección IP.

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

  1. Ejecute estos comandos desde un símbolo del sistema como Administrador:

     netsh http add urlacl url=http://localhost:5555/ user="NT AUTHORITY\INTERACTIVE" netsh http add urlacl url=http://*:5555/ user="NT AUTHORITY\INTERACTIVE" 
  2. En .vs \ config \ applicationhost.config (o para pre-VS2015, % USERPROFILE% \ Documents \ IISExpress \ config \ applicationhost.config ), agregue un enlace comodín a su sitio. El resultado debería tener este aspecto:

     <site name="..." id="..."> <!-- application settings omitted for brevity --> <bindings> <binding protocol="http" bindingInformation="*:5555:localhost" /> <binding protocol="http" bindingInformation="*:5555:*" /> </bindings> </site> 
  3. Abra el puerto de firewall para su sitio de IIS Express. Puede hacerlo desde un símbolo del sistema administrativo:

     netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=5555 profile=private remoteip=localsubnet action=allow 

Dale una oportunidad:

 netsh http add urlacl url=http://192.168.1.109:25968/ user=everyone 

De: http://johan.driessen.se/posts/Accessing-an-IIS-Express-site-from-a-remote-computer

Es posible que pueda sustituir el nombre de host de su computadora por la dirección IP para que no tenga que volver a ejecutarla cada vez que cambie su IP.

Necesitaba realizar todos los pasos del enlace que proporcionó cfeduke. (No sólo el que describe en su respuesta.)

  1. Agregue <binding protocol="http" bindingInformation="*:58938:192.168.1.42" /> a applicationhost.config después del enlace para 'localhost'.
  2. Ejecutar netsh http add urlacl url=http://192.168.1.42:58938/ user=everyone
  3. Ejecutar netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=58938 profile=private remoteip=localsubnet action=allow

Si tiene Node.js en su máquina Pruebe esta herramienta por: Ionut-Cristian Florescu

https://github.com/icflorescu/iisexpress-proxy

Para instalarlo simplemente escribe en la línea de comandos npm install -g iisexpress-proxy

A continuación, compruebe el puerto que tiene en su proyecto y asignarlo al puerto exterior. iisexpress-proxy [localPort] to [proxyPort]

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.