Una utilidad de línea de comandos simple pero práctica que permite a los desarrolladores de .NET para probar aplicaciones web atendidas por IIS Express en dispositivos remotos.
¿Es usted un desarrollador de .NET que crea aplicaciones web móviles? ¿Alguna vez te has sentido frustrado por el hecho de que no hay una manera fácil de permitir que IIS Express acepte conexiones de dispositivos remotos? ...
No hay necesidad de instalar iisexpress-proxy si está usando npm@^5.2.0 ; Simplemente puede ejecutarlo con npx . Si está utilizando una versión anterior de npm , lo más probable es que desee instalar iisexpress-proxy como un módulo global:
npm install -g iisexpress-proxyNota: Debe tener Node.js instalado.
Si está usando npm@^5.2.0 :
npx iisexpress-proxy@latest localPort to proxyPort Alternativamente, si instaló iisexpress-proxy como un módulo npm global:
iisexpress-proxy localPort to proxyPortPor ejemplo, si el puerto IIS Express de su aplicación es 51123, ejecute esto en el símbolo del sistema:
iisexpress-proxy 51123 to 3000
El programa enumerará las direcciones externas que puede usar para probar su aplicación en dispositivos remotos.
iisexpress-proxy predeterminado es HTTP, por lo que si su aplicación ejecuta HTTPS, incluya la URL completa.
iisexpress-proxy https://localhost:51123 to 3000 Tenga en cuenta que esto terminará HTTPS. En su máquina de destino, conéctese al puerto 3000 con HTTP, no HTTPS.
Si desea que el proxy mismo sirva a HTTPS, también puede especificar el objetivo con la URL completa.
iisexpress-proxy https://localhost:51123 to https:// * :3000 Esto generará un certificado autofirmado y lo usará, OpenSSL debe estar en PATH para que esto funcione.
Si está en Windows, la forma más fácil de obtener OpenSSL es usar Git Bash que viene con él preinstalada.
Si desea unirse a una interfaz específica en lugar de todas, use su IP en la URL de destino, por ejemplo, https://10.0.0.1:3000 . Tenga en cuenta que la parte de la derecha no puede ser un nombre de dominio.
También puede usar IISExpress-Proxy para exponer una instancia de servidor IIS que se ejecuta en un host diferente accesible a través de VPN, como esta:
iisexpress-proxy host:port to proxyHost:proxyPortPor ejemplo, consideremos este escenario:
Ejecutando esto en el símbolo del sistema:
iisexpress-proxy 192.168.96.3:5000 to 192.168.0.102:3000... Podrá acceder a la aplicación señalando los dispositivos móviles a 192.168.0.102:3000.
Para otro ejemplo avanzado, considere que está en WiFi público y no quiere exponer públicamente su servidor de desarrollo. Puede configurar una VPN entre su computadora portátil y su teléfono y solo exponer el servidor en la interfaz VPN (10.0.0.1). Entonces puedes correr
iisexpress-proxy 5000 to 10.0.0.1:8080... y abra http://10.0.0.1:8080 en su teléfono con VPN habilitado, mientras que otros usuarios de WiFi no podrán conectarse.
Nota: Esta funcionalidad se agregó en V1.1.0 (lanzado el 21/01/2015) .
El soporte de WebSocket fue agregado en v1.4.0 por Stan Hebben - consulte el PR #11 para más detalles.
Si no desea usar certificados generados, puede proporcionar su propio certificado y clave utilizando argumentos cert / key :
iisexpress-proxy https://localhost:51123 to https:// * :3000 --key=./your-key.pem --cert=./your-cert.pemNota: Esta funcionalidad se agregó en V1.7.0 (lanzado 14/02/2022) .
iisexpress-proxy no funciona en escenarios que involucran la autenticación integrada de Windows (consulte el número #here).
Está proxyendo el tráfico HTTP en localPort para proxyPort en todas las interfaces de red disponibles y también está cambiando el origen del encabezado del host, lo que le permite probar aplicaciones web alojadas por IIS Express en varios dispositivos remotos (dispositivos móviles, otros escritorios, etc.).
Si necesita acceder al host original solicitado por el navegador, los encabezados de solicitud incluirán encabezados X-Forward. En ASP.NET, Request.Headers["x-forwarded-host"] contendrá el host solicitado.
Esta utilidad de línea de comandos envuelve http-proxy. El logotipo original de HTTP-Proxy fue creado por Diego Pasquali.
Si encuentra útil este repositorio, dale una estrella, tuitea al respecto y me respalda en LinkedIn:
Recibo muchas preguntas de personas que solo aprenden a hacer desarrollo web o simplemente busco resolver un problema muy específico con el que están tratando. Si bien responderé a algunos de ellos en beneficio de la comunidad, comprenda que el código abierto es un esfuerzo compartido y definitivamente no se trata de aprovechar el trabajo de otras personas. En lugares como Github, eso significa que se alienta a aumentar los problemas, pero es mejor encontrar PRS útil. Si estoy dispuesto a compartir parte de mi código de forma gratuita, lo estoy haciendo por varias razones: mis propios desafíos intelectuales, orgullo, arrogancia, terquedad de creer que estoy trayendo una contribución al progreso y la libertad comunes, etc. Su bienestar particular probablemente no sea una de esas razones. No estoy en el negocio de proporcionar consultoría gratuita, por lo que si necesita mi ayuda para resolver su problema específico, hay una tarifa por eso.
El 24 de febrero de 2022, Rusia invadió ilegalmente Ucrania. Este es un ataque injustificado y no provocado contra la soberanía de un país vecino, pero también una afrenta abierta a la paz y la estabilidad internacional que tiene el potencial de degenerar en un evento nuclear que amenaza la existencia misma de la humanidad. Soy ciudadano rumano (UE), pero estoy con Ucrania y estoy haciendo todo lo que está en mi poder para detener esta locura. Así es como puedes mostrar tu apoyo.
La licencia ISC.