asp.net - rechazado - Conectarse a Visual Studio depurando el servidor IIS Express sobre la LAN
no se puede iniciar el servidor web de iis express visual studio 2017 (10)
VisualStudio 2015 Non-Admin
En su dir de solución, en el archivo
.vs/config/applicationHost.config
cambie la línea<binding protocol="http" bindingInformation="*:44302:localhost" />
a
<binding protocol="http" bindingInformation=":44302:" />
(donde 44302 es su puerto)
Desde un indicador de comando de administrador:
yo. Habilitar no administrador para vincular al puerto
netsh http add urlacl url=http://*:44302/ user=Everyone
ii. Permitir mediante firewall
netsh advfirewall firewall add rule name="IISExpress visualstudio app" protocol=tcp localport=44302 dir=in action=allow
- Comience a depurar desde VisualStudio
Tengo una aplicación ASP.NET MVC3 de prueba desarrollada en VS2012. Cuando comienzo la depuración, se accede a la aplicación desde el equipo host a través de la solicitud a http://localhost:<portnumber>
. Pero si intento acceder a la misma aplicación desde la máquina remota en la intranet a través de http://<ip>:<portnumber>
obtengo el HTTP error 400: Bad request. Invalid Host Name.
HTTP error 400: Bad request. Invalid Host Name.
En lo que se ejecuta en IIS Express, cualquier configuración de servidor es inaccesible.
¿Hay alguna forma de resolver esto?
Algunos de ustedes pueden pasar mucho tiempo modificando y probando usando su directorio% USERPROFILE%. Si está ejecutando depuración VS , use $ (dir_solución) .vs / config / applicationhost.config
Dado que no puedo agregar un comentario a la publicación de @Garret Fogerlie y en respuesta al problema de los comentaristas (@ Y.Ecarri y @SamuelEdwinWard), seguí lo que sugirió Garret, utilizando Visual Studio 2013, ejecutándolo en modo Admin y cambiando el archivo application.config
.
Después de iniciar la depuración y ver que obtuve el mismo mensaje de error, volví a application.config
y vi que se había creado una nueva entrada para mi sitio al igual que el problema de Y.Ecarri.
Así que dejé de depurar, mantuve mi solución abierta en Visual Studio y edité nuevamente el archivo application.config
para la nueva entrada. También simplemente localhost
completo los *
sings y el localhost
, así que tuve lo siguiente para la nueva entrada:
<binding protocol="https" bindingInformation=":44300:" />
Esto es lo que funcionó para mí:
- Inicie el Administrador de IIS
- Agregue un nuevo directorio virtual que apunte a la carpeta de proyectos (
C:/VSProjects
en mi caso) - Seleccione el nuevo directorio virtual dentro del administrador de IIS. Seleccione
Directory Browsing
en elDirectory Browsing
de la lista de opciones. En el lado derecho hay un botónEnable
. Pinchalo.
Ahora puedo acceder a mi carpeta y al contenedor del proyecto en la red a través de mypcname/VSProjects/myProj/outputBinViewer
.
Excepto para modificar el archivo de configuración de iisexpress, a veces también necesita ejecutar el comando como se muestra a continuación.
netsh http agregar urlacl url = http: // *: 49419 / user = Everyone
Gracias a byteit:
Vaya a applicationhost.config en Documents / IISExpress / config
encuentre la entrada para el sitio en particular en el que está trabajando:
añadir:
<binding protocol="http" bindingInformation="*:<your site port>:*" />
frente a la existente
<binding protocol="http" bindingInformation="*:<your site port>:localhost" />
Para lograr la solución sin tener VS2013 cree una nueva entrada xml de sitio web para usted cuando reinicie. Tendrá que ejecutar como administrador.
Tenía un problema de depuración muy similar en Visual Studio Code , lo resolví añadiendo:
"env": {
// ...
"ASPNETCORE_URLS": "http://*:5000" // change to the port you are using
// ...
},
.. para lanzar.json
Aparentemente, de forma predeterminada vincula el protocolo http a ''localhost: 5000'', por lo que funciona con localhost pero no con la dirección IP , ni de forma remota ni local.
Si intenta acceder a un punto de interrupción mediante una solicitud proveniente de otra computadora, no olvide verificar la configuración de su firewall (y / o antivirus)
espero que esto ayude
Actualizar
Hice un video que describe mejor el proceso, https://youtu.be/5ZqDuvTqQVs
Si está utilizando VS2013 o superior, asegúrese de ejecutarlo como administrador para que esto funcione.
Abra el%USERPROFILE%/My Documents/IISExpress/config/applicationhost.config
(en VS2015 puede ser el archivo $(solutionDir)/.vs/config/applicationhost.config
). En el interior deberías ver algo como esto: <site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%/WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:8080:localhost" />
</bindings>
</site>
Cambie el bindingInformation=":8080:localhost"
a bindingInformation="*:8080:*"
(el número de puerto, 8080 en mi caso, será diferente).
Nota: si no funciona, intente con bindingInformation="*:8080:
el asterisco se puede eliminar.
Luego, asegúrese de que su firewall permita las conexiones entrantes en ese puerto. Es posible que deba reiniciar el sistema o al menos Visual Studios para que IISExpress vuelva a cargar el archivo de configuración.
Si esto no funciona, eche un vistazo a esta respuesta: https://.com/a/5186680/985284
Cómo evitar ejecutar Visual Studio como administrador
Usando Garret''s Garret''s y Garret''s puede lograr conectarse al sitio web en ejecución sin necesidad de ejecutar Visual Studio como usuario administrador:
- Abra
%USERPROFILE%/My Documents/IISExpress/config/applicationhost.config
- Busque su sitio usando
name=MySiteName
- Duplique el elemento
<binding>
existente en la sección<bindings>
. Ahora debería tener dos líneas conbinding
. - Elimine la parte "localhost" en bindingInformation.
Ahora debería verse así, suponiendo que el puerto es
12345
:<binding protocol="http" bindingInformation="*:12345:localhost" /> <binding protocol="http" bindingInformation="*:12345:" />
Elimine las restricciones de firewall ejecutando el siguiente cmd como administrador:
netsh http add urlacl url=http://*:49419/ user=Everyone