Estoy intentando probar un sitio web que tengo en una instancia local de IISExpress con algunas otras máquinas / dispositivos en mi red local. Estoy ejecutando Win7 Pro.
Cuando intento buscar mi máquina desde otra máquina en mi segmento de red local, aparece un error 400: el nombre de host no es válido.
Entiendo que necesito otorgar acceso remoto a la ACL con un comando en el símbolo del sistema elevado como:
netsh http add urlacl url=http://mymachinename:50333/ user=everyone
Ahora recibo un servicio 503 no está disponible error.
El Firewall de Windows está apagado actualmente y puedo buscar mi instancia local de IISExpress con la dirección http://localhost:50333
¿Cuál es la pieza final de este rompecabezas de configuración?
iis-express
Jeff Fritz
fuente
fuente
http://mymachinename:50333/
desde tu computadora?Respuestas:
Parece que le falta una entrada de información vinculante en el archivo applicationhost.config.
Abra su archivo applicationhost.config. Las posibles ubicaciones son:
%userprofile%\Documents\IISExpress\config\applicationhost.config
$(solutionDir)\.vs\config\applicationhost.config
(VS2015)iisexpress.exe
para estar seguro.Localice su entrada en el sitio web y agregue el siguiente enlace con el nombre de su máquina.
Reiniciar IIS Express
fuente
iisexpress.exe
cuidadosamente para ver qué archivo de configuración está utilizando.Solo había 1 cosa que funcionó para mí.
usar
*:portnumber:*
no era bueno. Sí, después de hacer eso y asegurarme de que el Firewall de Windows estaba abierto, pude conectarme al puerto, pero aún recibí el error "503".Probé algunas cosas localmente y descubrí que solo http: // localhost funcionaba. Usando la dirección IP real (no 127.0.0.1, pero, por ejemplo, 192.168.1.50), todavía devolvió un 503 incluso en la máquina local. Intenté usar el nombre de host real en los enlaces, pero IIS Express se negó a comenzar. Esto puede tener algo que ver con cómo se resolvió el nombre de host. No exploré eso más a fondo.
Finalmente, terminé usando esta configuración:
De esa manera, pude conectarme desde una máquina remota usando
http://192.168.1.50:53351
.fuente
<binding protocol="https" bindingInformation="*:44300:*" />
<binding protocol="http" bindingInformation="*:8888:*" />
edit: realmente traté de entender la rebaja SO, dejé :).Después de perder más de 3 horas en un tema tan completo, decidí compartir mi configuración con usted. Mi configuración es Visual Express 2012 para la actualización web 4 en Windows 8. Esta fue la primera vez que volví a MS VS desde los estudios (al menos 8 años) y ahora estoy seguro de que Linux gobierna. En django, este tipo de configuración me llevó 10 minutos de búsqueda de documentación.
apague el firewall para probar
configurar enlaces en mi caso la dirección local es localIP = 192.168.1.102 (debido a que los enlaces no pueden contener un dominio no numérico, úselo a continuación en lugar de mylocaldomain.com, consulte la política de stackoverflow) en
Documents\IISExpress\config\applicationhost.config
agregue la ejecución automática para el servicio de inicio ISS Express automáticamente
Agregue algunas reglas extrañas al servidor http (todavía no sé si esto es necesario)
ejecutar IISExpress manualmente no desde VS IDE
http://mylocaldomain.com:53351
si está funcionando, entonces podemos agregar la regla de firewallagregar regla de firewall
establezca remoteip en cualquiera si desea acceder a su servidor desde fuera del mundo si desea acceder a la red local, use localsubnet
iniciar firewall
compruebe nuevamente si todo funciona en ip local y pública
Te deseo suerte
Rafal
fuente
netsh http delete urlacl url=http://*:55416/
(reemplace el puerto con su puerto)localhost
. He descubierto que el nombre del equipo invitado (Windows) que se necesita para estar en los enlaces enapplicationhost.config
, y en el host (Mac) en el nombre del equipo invitado necesaria para ser asignada a127.0.0.1
en/etc/hosts
. Solo entonces tuvo éxito una solicitud a la máquina invitada en el host.Encontré que el problema tenía que ver con un mal mapeo de urlacl. Para resolver esto:
y busque cosas como
http://+:80/
o el puerto al que está vinculado.Luego usa
Esto solucionó el problema para mí.
fuente
netsh http delete urlacl <yoururl>
Nada me funcionó. Finalmente encontré iisexpress-proxy
Ver mi respuesta https://stackoverflow.com/a/33623399/631527
Otra solución es
ngrok
fuente
3028
. Corríiisexpress-proxy 3028 to 12345
y luego./ngrok.exe http 12345
. 😅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
El problema es actualizar el archivo applicationhost.config dentro de la carpeta web en lugar de la solución. El archivo de configuración de la solución es el que se debe cambiar.
fuente
Después de la solución de @vikomall, no olvide iniciar VS como administrador. Esto me lo arregla.
fuente
Con respecto a la respuesta de Anthony Rizzolo: en Windows 8.1, tuve que escribir así:
Por ejemplo:
fuente
Ninguna de las respuestas anteriores funcionó para mí.
He tenido dos entradas en netsh para el mismo servicio.
netsh http show urlacl
Uno con un comodín fuerte, el otro con un comodín débil.
Eliminar el que tiene el comodín débil hizo el trabajo.
Más sobre el comodín fuerte y débil en el contexto de netsh
https://docs.microsoft.com/en-gb/windows/desktop/Http/urlprefix-strings
fuente