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.
- Carga de archivos de Android a una API Web .Net mediante Android Asynchronous Http Client Library
- El navegador de Android no descargará el archivo pdf
- El teclado de Android se superpone al problema de la caja de texto
- Implementación de FCM (Firebase Cloud Messaging) en una aplicación MVC Web
- Enviar datos desde android a asp.net mvc
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.
- Cómo persistir las cookies de WebViewClient a URLConnection, navegador u otra técnica de descarga de archivos en android
- Request.Browser.IsMobileDevice = false para Android, ¿por qué?
- MP3 streaming en C # .NET 4.5.1 MVC 5.2.2 en Samsung 6S
- Conectar la aplicación android a asp.net mvc back-end
- recibir variable booleana con solicitud json en volley
- Analizar ASP.NET MVC devolvió la fecha utilizando la biblioteca Jackson JSON en Java
- Consumir sitio WebAPI2 desde un cliente Android con autenticación de Google
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)
-
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"
-
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>
-
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.)
- Agregue
<binding protocol="http" bindingInformation="*:58938:192.168.1.42" />
a applicationhost.config después del enlace para 'localhost'. - Ejecutar
netsh http add urlacl url=http://192.168.1.42:58938/ user=everyone
- 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]