¿Cómo habilitar la solicitud externa en IIS Express?


¿Cómo puedo habilitar las solicitudes remotas en IIS Express? Scott Guthrie escribió que es posible pero no dijo cómo.

Author: Colonel Panic, 2010-07-23

21 answers

Ahora hay una entrada de blog en el sitio del equipo de IIS que explica cómo habilitar conexiones remotas en IIS Express. Aquí está la parte pertinente de ese post resumido:

En Vista y Win7, ejecute el siguiente comando desde un indicador administrativo:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Para XP, primero instale las herramientas de soporte de Windows XP Service Pack 2. A continuación, ejecute el siguiente comando desde un indicador administrativo:

httpcfg set urlacl /u http://vaidesg1:8080/ /a D:(A;;GX;;;WD)

 364
Author: Damian Edwards,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-16 01:33:45

Hay tres cambios que podrías necesitar hacer.

  1. Dile a IIS Express que se vincule a todas las direcciones ip y nombres de host. En su archivo .config. Normalmente:
    • VS 2015: $(solutionDir)\.vs\config\applicationhost.config
    • %userprofile%\My Documents\IISExpress\config\applicationhost.config

Encuentre el elemento de enlace de su sitio y agregue

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. Configure el bit de Windows llamado 'http.sys. Como administrador, ejecute el comando:
    netsh http add urlacl url=http://*:8080/ user=everyone

Donde everyone es un grupo de windows. Utilizar comillas dobles para grupos con espacios como "Tout le monde".

  1. Permitir IIS Express a través del firewall de Windows.

    Inicio / Firewall de Windows con Seguridad Avanzada / Reglas de Entrada / Nueva Regla...

    Programa %ProgramFiles%\IIS Express\iisexpress.exe
    O Puerto 8080 TCP

Ahora cuando empieces iisexpress.exe deberías ver un mensaje como

URL registrada con éxito "http://*:8080/" para la aplicación "hello world" del sitio "/"

 322
Author: Colonel Panic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-27 17:10:41

Recuerdo que me encontré con los mismos problemas al probar 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 .

Usando el IIS Express Proxy, todo se vuelve bastante simple – no hay necesidad de "netsh http add urlacl url=vaidesg:8080/ user=everyone" o de estropear su "applicationhost".config".

Simplemente emita esto en el comando prompt:

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.

 108
Author: Ionut-Cristian Florescu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-30 15:23:59

Nada funcionó para mí hasta que encontré iisexpress-proxy.

Abra el símbolo del sistema como administrador, luego ejecute

npm install -g iisexpress-proxy

Entonces

iisexpress-proxy 51123 to 81

Suponiendo que su proyecto de Visual Studio se abre en localhost: 51123 y desea acceder a la dirección IP externa x.x.x.x:81

Editar: solo para mencionar que funciona muy bien con noip.com

 84
Author: Toolkit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-17 20:04:29

Un buen recurso es Trabajar con SSL en tiempo de Desarrollo es más fácil con IISExpress de Scott Hanselman.

Lo que está buscando es la sección Conseguir que IIS Express sirva externamente a través del Puerto 80

 33
Author: Luke Sampson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-25 04:12:57

Como nota al margen de esto:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Esto solo funcionará en versiones en inglés de Windows. Si está utilizando una versión localizada, debe reemplazar "todos" con otra cosa, por ejemplo:

  • "Iedereen" cuando se utiliza una versión neerlandesa
  • "Jeder" cuando se utiliza una versión alemana
  • "Mindenki" cuando se utiliza una versión húngara

De lo contrario, obtendrá un error (Create SDDL failed, Error: 1332)

 29
Author: breez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-29 14:26:44

Lo resolví con la instalación de "Conveyor by Keyoti" en Visual Studio Professional 2015. Genere una dirección REMOTA (su IP) con un puerto (45455) que habilite la solicitud externa. Ejemplo:

introduzca la descripción de la imagen aquí

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

 15
Author: Ronny Morán,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-19 20:05:59

Si está trabajando con Visual Studio, siga estos pasos para acceder a IIS-Express a través de IP-Adress:

  1. Obtenga su dirección IP del host: ipconfig en la línea de comandos de Windows
  2. GoTo

    $(SolutionDir)\.vs\config\applicationHost.config
    
  3. Buscar

    <site name="WebApplication3" id="2">
       <application path="/" applicationPool="Clr4IntegratedAppPool">
          <virtualDirectory path="/" physicalPath="C:\Users\user.name\Source\Repos\protoype-one\WebApplication3" />
       </application>
       <bindings>
         <binding protocol="http" bindingInformation="*:62549:localhost" />
       </bindings>
    </site>
    
  4. Añadir: <binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    con su dirección IP

  5. Ejecute su Visual Studio con derechos de administrador y todo debería funcionar
  6. Tal vez busque algunos problemas de firewall si intenta conectarse desde
 13
Author: Daniel Eisenreich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-23 06:09:11

Si has probado La respuesta del Coronel Panic pero no funciona en Visual Studio, prueba esto:

Añadir otro <binding /> en su configuración de IIS Express

<bindings>
    <binding protocol="http" bindingInformation="*:8080:localhost" />
    <binding protocol="http" bindingInformation="*:8080:hostname" />
</bindings>

Finalmente, tienes que ejecutar Visual Studio como Administrador

 9
Author: Bruce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:23

Lo que me ayudó, fue hacer clic derecho en el icono 'IISExpress', 'Mostrar todas las aplicaciones'. A continuación, la selección de la página web y vi que aplicationhost.config utiliza, y la corrección fue perfectamente.

Configuración de IISExpress

 7
Author: Emmanuel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-18 08:31:53

La respuesta aceptada a esta pregunta es una guía para hacer que IIS Express funcione con webmatrix. Encontré esta guía más útil al intentar que funcione con VS 2010.

Acabo de seguir los pasos 3 y 4 (ejecutando IIS Express como administrador) y tuve que desactivar temporalmente mi firewall para que funcionara.

 5
Author: Chad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-16 00:19:20

Esto es lo que hice para Windows 10 con Visual Studio 2015 para habilitar el acceso remoto, tanto con http como https:

El primer paso es vincular su aplicación a su dirección IP interna. Corre cmd -> ipconfig para conseguir la dirección. Abra el archivo /{project folder}/.vs/config/applicationhost.config y desplácese hacia abajo hasta que encuentre algo como esto:

<site name="Project.Web" id="2">
    <application path="/">
        <virtualDirectory path="/" physicalPath="C:\Project\Project.Web" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:12345:localhost" />
    </bindings>
</site>

Añádanse dos nuevas consolidaciones en bindings. También puedes usar HTTPS si te gusta:

<binding protocol="http" bindingInformation="*:12345:192.168.1.15" />
<binding protocol="https" bindingInformation="*:44300:192.168.1.15" />

Agregue la siguiente regla a su firewall, abra una nueva solicitud cmd como administrador y ejecute los siguientes comandos:

netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=12345 profile=private remoteip=localsubnet action=allow

netsh advfirewall firewall add rule name="IISExpressWebHttps" dir=in protocol=tcp localport=44300 profile=private remoteip=localsubnet action=allow

Ahora inicie Visual Studio como Administrator. Haga clic derecho en el archivo de proyecto web projects y seleccione Properties. Vaya a la pestaña Web y haga clic en Create Virtual Directory. Si Visual Studio no se ejecuta como Administrador, esto probablemente fallará. Ahora todo debería funcionar.

introduzca la descripción de la imagen aquí

 4
Author: Ogglas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-07 11:56:40

Puede intentar configurar el reenvío de puertos en lugar de intentar modificar la configuración de IIS Express, añadiendo un nuevo HTTP.reglas del sistema o ejecución de Visual Studio como administrador.

Básicamente necesita reenviar el IP:PORT en el que se ejecuta su sitio web a algún otro puerto libre en su máquina, pero en el adaptador de red externo, no localhost.

La cosa 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.

Aquí está cómo hice este trabajo - http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html

Espero que ayude.

 4
Author: srmrco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-07 09:42:13

Tengo algunos problemas al usar IIS Express en Win 8.1 y solicitud externa.

Sigo estos pasos para depurar la solicitud externa:

  1. Instalar IIS
  2. Configure Visual Studio para usar IIS locales (Propiedades de página en su proyecto Web)
  3. Crear un AppPool exclusivo en IIS para trabajar con mi aplicación
  4. En mi Proyecto estoy usando Oracle Client y debe ser de 32 bits (64 bits no funcionan con Visual Studio), entonces necesito permitir 32 bits en la aplicación Pool
  5. Configure el firewall de Windows para permitir la solicitud en el puerto 80 (reglas de entrada)

¡Está funcionando!

 3
Author: Robson Douglas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-03 19:51:16

Si ejecuta Visual Studio desde Admin, puede agregar solo

<binding protocol="http" bindingInformation="*:8080:*" />

O

<binding protocol="https" bindingInformation="*:8443:*" />

Hacia

%userprofile%\My Documents\IISExpress\config\applicationhost.config
 2
Author: Andrii,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-26 23:34:14

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 fresco que otro método porque es más fácil de quitar una vez que he terminado de desarrollar... Así es como se ve la reescritura..

<rewrite>
    <rules>
        <rule name="ReverseProxyInboundRule1" stopProcessing="true">
            <match url="^dev/(.*)" />
            <action type="Rewrite" url="http://localhost:47039/{R:1}" />
        </rule>
    </rules>
</rewrite>

VS también le permite desarrollar usando su IIS local directamente (que luego permite conexiones remotas), pero a su vez siempre debe ejecutarlo como administrador... No me gusta eso.

 2
Author: konzo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-04 09:30:47

No pude servir solicitudes de iis a otros usuarios en mi red local, todo lo que tenía que hacer (además de lo anterior) era reiniciar mi enrutador BT Hub.

 0
Author: Terry Kernan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-01 10:01:09

Esto es increíblemente impresionante e incluso cubre HTTPS con nombres de dominio bonitos:

Http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx

Las partes realmente impresionantes no pude encontrar en ningún otro lugar, así que en caso de que el enlace anterior desaparezca:

> C:\Program Files (x86)\IIS Express>IisExpressAdminCmd.exe Usage:
> iisexpressadmincmd.exe <command> <parameters> Supported commands:
>       setupFriendlyHostnameUrl -url:<url>
>       deleteFriendlyHostnameUrl -url:<url>
>       setupUrl -url:<url>
>       deleteUrl -url:<url>
>       setupSslUrl -url:<url> -CertHash:<value>
>       setupSslUrl -url:<url> -UseSelfSigned
>       deleteSslUrl -url:<url>
> 
> Examples: 1) Configure "http.sys" and "hosts" file for friendly
> hostname "contoso": iisexpressadmincmd setupFriendlyHostnameUrl
> -url:http://contoso:80/ 2) Remove "http.sys" configuration and "hosts" file entry for the friendly  hostname "contoso": iisexpressadmincmd
> deleteFriendlyHostnameUrl -url:http://contoso:80/

¡La utilidad anterior registrará el certificado SSL por usted! Si utiliza la opción-UseSelfSigned, es muy fácil.

Si quieres hacer las cosas de la manera difícil, la la parte no obvia es que necesita decirle a HTTP.SYS qué certificado usar, así:

netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE

Certhash es la "Huella digital" que puede obtener de las propiedades del certificado en MMC.

 0
Author: eselk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-03 05:18:34

Hice lo siguiente y pude conectarme:

1) se ha cambiado el enlace de configuración de IIS express del host local a ' * '

Binding protocol = "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

 0
Author: dhakalan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-21 20:02:08

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.

He añadido un nuevo puerto para escuchar al servidor web Apache (8081). Luego agregué la configuración del proxy como virtualhost para ese puerto.

<VirtualHost *:8081>
ProxyPass / http://localhost:46935/
ProxyPassReverse / http://localhost:46935/
</VirtualHost>
 0
Author: mustafacanturk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-09 08:24:06

[diálogo de propiedades del proyecto]

Para el desarrollo utilizando VisualStudio 2017 y un proyecto API NetCore:

1) En Cmd-Box: ipconfig /all para determinar la dirección IP

2a) Introduzca la dirección IP recuperada en Propiedades del proyecto-> Pestaña Depuración

2b) Seleccione un puerto y adjúntelo a la dirección IP desde el 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 diálogo: "Bloquear o agregar regla a firewall"). Agregar en ese caso hará el truco.

Desventaja de la solución anterior:

1) Si utiliza una dirección IP dinámica, debe rehacer los pasos anteriores en caso de que se haya asignado otra dirección IP.

2) Su servidor tiene ahora un puerto abierto que podría olvidar, pero este puerto abierto sigue siendo una invitación para invitados no deseados.

 0
Author: Paul Franke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-20 13:02:24