visual studio - tag - Crear directorios virtuales en IIS express
iis express visual studio 2017 (6)
¿Hay alguna forma de crear un directorio virtual en IIS express? Sé que Cassini no puede hacer esto y sería bueno poder hacer esto sin usar una versión completa de IIS.
Lo tengo tan lejos que puedo buscar mi aplicación localmente en IIS express así:
Lo que me gustaría hacer es crear un directorio virtual llamado "OffSiteStuff" y dirigirlo a alguna ubicación en mi disco C, como "c: / offsitestuff" y luego buscar elementos en esa carpeta como este:
http://localhost:1132/OffSiteStuff/UserUploadedImage.jpg
Sé que podría hacer esto con una carpeta dentro de mi sitio y seguir usando IIS Express, o, para el caso, la vieja Cassini, pero esta carpeta almacenará las imágenes cargadas por los usuarios y realmente no quiero que estas imágenes se mezclen con archivos de aplicaciones.
La otra solución, "ir a lo grande" es implementar el sitio en una instancia completa de Server 2008 IIS 7.5 cada vez que quiero depurar las funciones que usan contenido externo, pero eso también es un poco engorroso.
¿Hay alguna manera de que pueda hacer esto en el elemento de configuración web <System.WebServer />
?
En VS2013, hice esto en los siguientes pasos:
1. Haga clic derecho en el proyecto de la aplicación web y presione Propiedades
2. Ver la pestaña "Web" de la página de Propiedades
3. En Servidores, con "IIS Express" como la opción predeterminada del menú desplegable, en "Url del proyecto" cambie la URL usando el número de puerto a la que más le convenga. Por ejemplo, borré el número de puerto y agregué "/ MVCDemo4" después del localhost.
4. Haga clic en el botón "Crear directorio virtual".
5. Ejecuta tu proyecto y se usará la nueva url
La configuración expresa de IIS es administrada por applicationhost.config.
Puedes encontrarlo en
Carpeta Users / <username> / Documents / IISExpress / config.
En el interior, puede encontrar la sección de sitios que contiene una sección para cada sitio configurado de IIS Express.
Agregue (o modifique) una sección de sitio como esta:
<site name="WebSiteWithVirtualDirectory" id="20">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:/temp/website1" />
</application>
<application path="/OffSiteStuff" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="d:/temp/SubFolderApp" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:1132:localhost" />
</bindings>
</site>
Prácticamente necesita agregar una nueva etiqueta de aplicación en su sitio para cada directorio virtual. Obtiene mucha flexibilidad porque puede establecer una configuración diferente para el directorio virtual (por ejemplo, una versión diferente de .Net Framework)
EDITAR Gracias a Fevzi Apaydın por señalar una solución más elegante.
Puede lograr el mismo resultado agregando una o más etiquetas de VirtualDirectory a la etiqueta de la aplicación:
<site name="WebSiteWithVirtualDirectory" id="20">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:/temp/website1" />
<virtualDirectory path="/OffSiteStuff" physicalPath="d:/temp/SubFolderApp" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:1132:localhost" />
</bindings>
</site>
Referencia:
Si está usando Visual Studio 2013 (puede requerir una edición Pro o superior), pude agregar un directorio virtual a un sitio web IIS Express (basado en archivos) haciendo clic derecho en el sitio web en el Explorador de soluciones y haciendo clic en Agregar> Nuevo directorio virtual. Esto agregó una entrada al archivo applicationhost.config como con los métodos manuales que se describen aquí.
Tenía algo más, los archivos en sí eran inaccesibles en un entorno SBS.
Borre los archivos en la carpeta config (¡si no puede abrirlos!) Y reemplácelos con una copia de la carpeta en su propia PC local.
Me lo arregló :)
Una nueva opción es Jexus Manager para IIS Express,
https://blog.lextudio.com/2014/10/jexus-manager-for-iis-express/
Es solo la herramienta de gestión que usted sabe cómo usar.
El avance de @Be.St. es verdadero, pero incompleto. Solo estoy copiando su explicación al corregir la parte incorrecta.
La configuración expresa de IIS es administrada por applicationhost.config.
Puedes encontrarlo en
Carpeta Users / <username> / Documents / IISExpress / config.
En el interior, puede encontrar la sección de sitios que contiene una sección para cada sitio configurado de IIS Express.
Agregue (o modifique) una sección de sitio como esta:
<site name="WebSiteWithVirtualDirectory" id="20">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:/temp/website1" />
<virtualDirectory path="/OffSiteStuff" physicalPath="d:/temp/SubFolderApp" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:1132:localhost" />
</bindings>
</site>
En lugar de agregar un nuevo bloque de aplicación, solo debe agregar un nuevo elemento de directorio virtual al elemento primario de la aplicación.
Edición - Visual Studio 2015
Si está buscando el archivo applicationHost.config y está usando VS2015, lo encontrará en:
[solution_directory] /. vs / config / applicationHost.config