Uso de IIS Express para alojar un sitio web (temporalmente)

Tengo un sitio web (MVC3), que para desarrollo está alojado en IIS Express. (Me encontré con un error de Cassini Devserver y tuve que actualizar …) Ahora, me pregunto, ¿es posible permitir que otras máquinas en mi red local (detrás del enrutador) vean el sitio alojado en mi máquina? (Por ejemplo, si escribo http: //my.local.ip: port en un navegador en la misma LAN que estoy, ¿se cargará la página?)

De manera predeterminada, IIS Express solo atiende las solicitudes de localhost. Para %userprofile%\documents\iisexpress\config\ solicitudes externas, edite el archivo applicationhost.config (ubicado en %userprofile%\documents\iisexpress\config\ ) y cambie localhost a '*' o el nombre de su máquina. (recuerde que para el enlace no localhost debe estar ejecutándose como administrador o establecer URL acl como administrador y luego ejecutar iisexpress como no administrador)

Alternativamente, puede usar algo como PortMapper de AnalogX para actuar como un pequeño proxy de bucle invertido para hacer un túnel privado de puertos enlazados al servidor local para abrir puertos públicamente.

Por ejemplo,

  • IISExpress está vinculado localmente a localhost: 8080
  • PortMapper puerto 9090 está configurado para transmitir tráfico a localhost: 8080

Efectivamente, cualquier conexión en el puerto 9090 (abierta por PortMapper ) se tunelizará a localhost: 8080 ; evitando así todas las netsh absurdas que a veces pueden ser un dolor.

A continuación está mi configuración:

Configuración de PortMapper

La ventaja de utilizar este método de proxy es que no expone de forma permanente un puerto IISExpress abierto en el cuadro dev local.

En raras ocasiones, hay momentos en los que quiero abrir el puerto públicamente para las reuniones; pero la mayoría de las veces, el puerto debe cerrarse y solo ser accesible por localhost. La modificación de las reglas de firewall en el enrutador cada vez es un problema. Así es como tengo las cosas configuradas:

  • El firewall de mi enrutador reenvía el puerto 9090 a PortMapper
  • PortMapper solo continúa enviando el tráfico a IISExpress (escuchando en 8080 ) solo si se está ejecutando PortMapper .

Nota

Asegúrese de cerrar todas las ventanas de PortMapper para que los cambios surtan efecto.

Nota 2

Como otros han descrito, es posible que deba ajustar los enlaces IISExpress para su aplicación en

  My Documents\IISExpress\applicationhost.config project\.vs\config\applicationhost.config 

a algo como:

       

Creo que hay tres pasos para hacer que esto sea exitoso:

1) Agregue una entrada dns o entradas de hosts para que otras máquinas puedan buscar la dirección IP del equipo dev

2) Agregue un enlace a applicationhost.config en% userprofile / documents / IISExpress / Config como tal

   ...    

3) Ejecute el comando que se encuentra aquí para permitir las solicitudes entrantes:

 netsh http add urlacl url=http://yourmachinendnsname:yourport#/ user=everyone 

La respuesta en este hilo es genial, simplemente deja fuera las excepciones del firewall.

 netsh advfirewall firewall add rule name="IIS Express (non-SSL)" action=allow protocol=TCP dir=in localport=8000 netsh advfirewall firewall add rule name="IIS Express (SSL)" action=allow protocol=TCP dir=in localport=44300 

Extraído de los comentarios @ http://blogs.iis.net/vaidyg/archive/2010/07/29/serving-external-traffic-with-webmatrix-beta.aspx

El truco de regla personalizada en Fiddler de http://blogs.microsoft.co.il/blogs/shair/archive/2008/12/15/how-to-use-fiddler-on-localhost.aspx me funcionó finalmente.

sí, puede configurar tantos sitios usando iis express para el uso local de lan aquí está el enlace Accediendo a sitios locales desde Lan IIS Express que explican cómo lograr esto.