¿Cómo puedo habilitar solicitudes remotas en IIS Express? Scott Guthrie escribió que es posible pero no dijo cómo.
c#
asp.net
iis-express
TedTel
fuente
fuente
Respuestas:
Ahora hay una publicación de blog en el sitio del equipo de IIS que explica cómo habilitar las conexiones remotas en IIS Express . Aquí está la parte pertinente de esa publicación resumida:
fuente
netsh
comando para permitir conexiones en cualquier nombre de host?user={PARAM_USER}
estará en su propio idioma.user=todos
lugar deuser=everyone
.Hay tres cambios que puede necesitar hacer.
.config
archivo. Típicamente:$(solutionDir)\.vs\config\applicationhost.config
%userprofile%\My Documents\IISExpress\config\applicationhost.config
Encuentre el elemento de enlace de su sitio y agregue
¿Dónde
everyone
está un grupo de Windows? Use comillas dobles para grupos con espacios como "Tout le monde".Permitir IIS Express a través del firewall de Windows.
Ahora, cuando comience
iisexpress.exe
, debería ver un mensaje comofuente
users=everyone
denetsh
(segundo paso) puede causar un error 1789. Solución es traducireveryone
al nombre del grupo correspondiente en su idioma.Project Url
, si ingreso un asterisco para el nombre de host, da un error. Si ingreso algo más, intenta crear un nuevo directorio virtual. No se vincula a la entrada en application.config.bindingInformation="*:8080:hostname"
y en el paso 2url=http://hostname:8080/
, y en las propiedades de su proyecto web de Visual Studio en la pestaña Web configure la URL del proyecto enhttp://hostname:8080/
. Elimine el*
urlacl si ya creó uno; no funcionará si tienes ambos. Finalmente, la URL a la que va en su navegador web debe hacer referencia al nombre de host, no localhost.<binding protocol="http" bindingInformation="*:8080:localhost" />
Recuerdo haber tenido los mismos problemas al intentar este flujo de trabajo hace unos meses.
Es por eso que escribí una utilidad proxy simple específicamente para este tipo de escenario: https://github.com/icflorescu/iisexpress-proxy .
Al usar el Proxy IIS Express , todo se vuelve bastante simple: no es necesario "netsh http add urlacl url = vaidesg: 8080 / user = everyone" o estropear su "applicationhost.config".
Solo emita esto en el símbolo del sistema:
iisexpress-proxy 8080 to 3000
... y luego puede apuntar sus dispositivos remotos a http: // vaidesg: 3000 .
La mayoría de las veces más simple ES mejor.
fuente
Nada funcionó para mí hasta que encontré iisexpress-proxy .
Abra el símbolo del sistema como administrador, luego ejecute
entonces
asumiendo que su proyecto de Visual Studio se abre en localhost: 51123 y desea acceder a una dirección IP externa xxxx: 81
Editar: actualmente estoy usando
ngrok
fuente
Como nota al margen de esto:
Esto solo funcionará en versiones en inglés de Windows. Si está utilizando una versión localizada, debe reemplazar "todos" por otra cosa, por ejemplo:
De lo contrario, recibirá un error (Error al crear SDDL, Error: 1332)
fuente
Un buen recurso es trabajar con SSL en tiempo de desarrollo, es más fácil con IISExpress de Scott Hanselman.
Lo que busca es la sección Obtener IIS Express para servir externamente a través del Puerto 80
fuente
Si está trabajando con Visual Studio, siga estos pasos para acceder a IIS-Express a través de la dirección IP:
ipconfig
en la línea de comandos de WindowsIr
Encontrar
Añadir:
<binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
con su dirección IP
fuente
Lo resolví con la instalación de "Conveyor by Keyoti" en Visual Studio Professional 2015. El transportador genera una dirección REMOTA (su IP) con un puerto (45455) que permite la solicitud externa. Ejemplo:
Conveyor le permite probar aplicaciones web desde tabletas y teléfonos externos en su red o desde emuladores de Android (sin
http://10.0.2.2:<hostport>
)Los pasos están en el siguiente enlace:
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
fuente
Si ha probado la respuesta del Coronel Panic pero no funciona en Visual Studio, intente esto:
Agregue otro
<binding />
en su configuración de IIS ExpressFinalmente, debe ejecutar Visual Studio como administrador
fuente
Lo que me ayudó fue hacer clic derecho en el ícono 'IISExpress', 'Mostrar todas las aplicaciones'. Luego seleccioné el sitio web y vi qué aplicationhost.config usa, y la corrección fue perfecta.
fuente
Esto es lo que hice para Windows 10 con Visual Studio 2015 para habilitar el acceso remoto, tanto con http como con https:
El primer paso es vincular su aplicación a su dirección IP interna. Ejecute
cmd
->ipconfig
para obtener la dirección. Abra el archivo/{project folder}/.vs/config/applicationhost.config
y desplácese hacia abajo hasta encontrar algo como esto:Agregue dos enlaces nuevos debajo
bindings
. También puede usar HTTPS si desea:Agregue la siguiente regla a su firewall, abra una nueva
cmd
solicitud como administrador y ejecute los siguientes comandos:Ahora inicie Visual Studio como
Administrator
. Haga clic derecho en el archivo de proyecto de proyectos web y seleccioneProperties
. Vaya a laWeb
pestaña y haga clicCreate Virtual Directory
. Si Visual Studio no se ejecuta como administrador, esto probablemente fallará. Ahora todo debería funcionar.fuente
La respuesta aceptada a esta pregunta es una guía para que IIS Express funcione con webmatrix. Encontré esta guía más útil al intentar que funcione con VS 2010.
Simplemente seguí los pasos 3 y 4 (ejecutando IIS Express como administrador) y tuve que desactivar temporalmente mi firewall para que funcionara.
fuente
Puede intentar configurar el reenvío de puertos en lugar de intentar modificar su configuración de IIS Express, agregar nuevas reglas HTTP.sys o ejecutar Visual Studio como administrador.
Básicamente, debe reenviar la ejecución de
IP:PORT
su sitio web a algún otro puerto libre en su máquina pero en el adaptador de red externo, no localhost.Lo que pasa es que IIS Express (al menos en Windows 10) se une a
[::1]:port
lo que significa que escucha en el puerto IPv6. Tienes que tener esto en cuenta.Así es como hice este trabajo: http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html
Espero eso ayude.
fuente
La forma más simple y genial que encontré fue usar (la configuración tarda 2 minutos):
https://ngrok.com/
Funcionará con cualquier cosa que se ejecute en localhost. Simplemente regístrese, ejecute poco ejecutable y todo lo que ejecute en localhost obtiene una URL pública a la que puede acceder desde cualquier lugar.
Esto es bueno para mostrar cosas a sus compañeros de equipo remotos, sin jugar con la configuración de IIS o los firewalls. Desea detener el acceso simplemente terminar ejecutable.
asumiendo que 89230 es su puerto IIS Express
También puede ejecutar múltiples puertos incluso en plan gratuito
fuente
Tengo algunos problemas al usar IIS Express en Win 8.1 y solicitud externa.
Sigo estos pasos para depurar la solicitud externa:
¡Esta funcionando!
fuente
Si ejecuta Visual Studio desde Admin, puede agregar solo
<binding protocol="http" bindingInformation="*:8080:*" />
o
<binding protocol="https" bindingInformation="*:8443:*" />
dentro
fuente
$(SolutionDir).vs\config\applicationHost.config
y también tuve que abrir el puerto (8443) de la aplicación en el firewall de Windows.Tenía un IIS local habilitado, así que acabo de crear una regla de reescritura en mi puerto de depuración ... Creo que esto es mejor y más genial que otro método porque es más fácil de eliminar una vez que termine de desarrollar ... Así es como se ve la reescritura. .
VS también le permite desarrollar utilizando su IIS local directamente (que luego permite conexiones remotas), pero a su vez siempre debe ejecutarlo como administrador ... No me gusta eso.
fuente
Resolví este problema usando el enfoque de proxy inverso.
Instalé el servidor wamp y utilicé la función de proxy inverso simple del servidor web apache.
Agregué un nuevo puerto para escuchar el servidor web Apache (8081). Luego agregué la configuración de proxy como virtualhost para ese puerto.
fuente
Hice todos estos pasos y nada me ayudó. Y lo que necesito, es solo ejecutar mi aplicación a través de IIS Express ...
Espero eso ayude.
fuente
No pude atender sus solicitudes a otros usuarios en mi red local, todo lo que tuve que hacer (además de lo anterior) fue reiniciar mi enrutador BT Hub.
fuente
Esto es increíblemente increíble e incluso cubre HTTPS con bonitos nombres de dominio:
http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
Las partes realmente increíbles que no pude encontrar en ningún otro lugar en SO en caso de que el enlace anterior desaparezca:
¡La utilidad anterior registrará el certificado SSL por usted! Si usa la opción -UseSelfSigned, es súper fácil.
Si desea hacer las cosas de la manera difícil, la parte no obvia es que debe decirle a HTTP.SYS qué certificado usar, como este:
Certhash es la "huella digital" que puede obtener de las propiedades del certificado en MMC.
fuente
Hice lo siguiente y pude conectarme:
1) cambió el enlace de configuración expresa de IIS del host local a '*'
protocolo de enlace = "http" bindingInformation = "*: 8888: *"
2) Regla de entrada definida en el firewall para permitir el puerto particular para el tipo de protocolo: tcp
3) Agregue el siguiente comando para agregar la configuración de red para su puerto: netsh http add urlacl url = http: // *: 8888 / user = everyone
fuente
Otra forma de acceder a solicitudes externas es usar IIS en lugar de IIS Express. En mi estudio visual, puedo cambiar fácilmente.
fuente
[diálogo de propiedades del proyecto]
Para el desarrollo con VisualStudio 2017 y un proyecto API NetCore:
1) En Cmd-Box: ipconfig / all para determinar la dirección IP
2a) Ingrese la dirección IP recuperada en Propiedades del proyecto-> Pestaña Depurar
2b) Seleccione un puerto y conéctelo a la dirección IP del paso 2a.
3) Agregue una regla de permiso en el firewall para permitir el tráfico TCP entrante en el puerto seleccionado (mi firewall se activó con un cuadro de diálogo: "Bloquear o agregar una regla al firewall"). Agregar en ese caso hará el truco.
Desventaja de la solución anterior:
1) Si utiliza una dirección IP dinámica, debe volver a realizar los pasos anteriores en caso de que se haya asignado otra dirección IP.
2) Su servidor ahora tiene un puerto abierto que puede olvidar, pero este puerto abierto sigue siendo una invitación para invitados no deseados.
fuente