vs2017 visual studio site delete configurar all visual-studio iis-express applicationhost

site - ¿Cómo evito que Visual Studio modifique la ruta física del sitio IIS Express en applicationhost.config?



iis express vs iis (2)

No pude evitar que VS anule la PhysicalPath para MySiteName, pero como solución alternativa, agregué otra sección de aplicación con una ruta diferente (digamos "NewPath") y no actualicé VS para usar esta ruta en las propiedades web csproj. En este caso, al realizar la depuración, abrirá automáticamente el navegador en la url antigua ( http://localhost:63470/ ) si navega al nuevo punto final ( http://localhost:63470/NewPath ) todo funcionará bien y VS funcionará http://localhost:63470/NewPath . No revertir esto.

Así que la nueva configuración se ve así:

<site name="MySiteName" id="42"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="c:/path/to/project" /> </application> <application path="/NewPath" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="c:/my/desired/path" /> </application> <bindings> <binding protocol="http" bindingInformation="*:63470:localhost" /> </bindings> </site>

Tengo un proyecto de aplicación web de Visual Studio que, por ciertas razones, copia archivos de múltiples proyectos a un directorio de salida separado. Quiero usar este directorio de salida como la raíz del sitio IIS Express asociado. En el archivo applicationhost.config de IIS Express, puedo configurar la ruta física del sitio asociado al directorio correcto. Lo pondré así:

<site name="MySiteName" id="42"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="c:/my/desired/path" /> </application> <bindings> <binding protocol="http" bindingInformation="*:63470:localhost" /> </bindings> </site>

Sin embargo, cuando vuelvo a abrir el proyecto, Visual Studio sobrescribe mi ruta física especificada, volviéndola al directorio propio del proyecto. Peor aún, Visual Studio no me da ninguna indicación de que haya hecho esto. Aquí es cómo el elemento <virtualDirectory> se ve después de que Visual Studio lo desordene:

<virtualDirectory path="/" physicalPath="c:/path/to/project" />

¿Cómo puedo evitar que Visual Studio sobrescriba esta ruta?


Visual Studio 2013 y 2015 no modifica la ruta física para la opción ''Anular URL de grupo de aplicaciones'':

El archivo %userprofile%/documents/iisexpress/config/applicationhost.config tiene el siguiente aspecto predeterminado:

<site name="MyWebSite" id="1477659296"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:/Projects/MyWebSite" /> </application> <bindings> <binding protocol="http" bindingInformation="*:62238:localhost" /> <binding protocol="http" bindingInformation="*:62238:*" /> </bindings> </site>

Simplemente copie el bloque predeterminado anterior, péguelo directamente debajo y realice algunos cambios. Cambie el name , id , physicalPath y anule la URL con el subdominio adicional. En mi caso de debug :

<site name="MyWebSiteOverwritten" id="99999999"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:/Projects/DifferentPath" /> </application> <bindings> <binding protocol="http" bindingInformation="*:62238:debug.localhost" /> </bindings> </site>

Ahora, cuando inicio VS y ejecuto IIS Express, Visual Studio no cambia el physicalPath en el archivo applicationhost.config de la URL sobrescrita. Funciona para mi.

Sugerencia para Visual Studio 2015: Visual Studio 2015 usa el archivo YourProject/.vs/config/applicationhost.config y lo anula cada vez que abre el entorno. Abra su archivo *.proj y configure la siguiente entrada:

<UseGlobalApplicationHostFile>true</UseGlobalApplicationHostFile>

Con esta configuración, IIS Express utiliza el archivo host de su aplicación global ubicado en: %userprofile%/documents/iisexpress/config/applicationhost.config .