¿Hay alguna forma de crear un directorio virtual en IIS express? Sé que Cassini no puede hacer esto y sería bueno poder hacerlo 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 apuntarlo a alguna ubicación en mi unidad 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, el viejo Cassini, pero esta carpeta almacenará imágenes cargadas por los usuarios y realmente no quiero mezclar estas imágenes con archivos de aplicación
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 quiera depurar las características que usan contenido externo, pero eso también es un poco engorroso.
¿Hay alguna manera de hacer esto en el <System.WebServer />
elemento de configuración web?
fuente
applicationHost.config
archivo se encuentra bajo la raíz del proyecto:${PROJECT}\.vs\config\applicationHost.config
.Respuestas:
La configuración express de IIS es administrada por applicationhost.config.
Lo puedes encontrar en
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 del sitio como esta:
Prácticamente necesita agregar una nueva etiqueta de aplicación en su sitio para cada directorio virtual. Obtiene mucha flexibilidad porque puede establecer diferentes configuraciones 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 virtualDirectory a la etiqueta Aplicación:
Referencia:
fuente
applicationhost.config
ha cambiado. Más sensiblemente que las versiones anteriores, ahora se encuentra en la.vs\config
subcarpeta de la carpeta de la solución.El enfoque de @ Be.St. Es cierto, pero incompleto. Solo estoy copiando su explicación con la corrección de la parte incorrecta.
La configuración express de IIS es administrada por applicationhost.config.
Lo puedes encontrar en
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 del sitio como esta:
En lugar de agregar un nuevo bloque de aplicación, simplemente debe agregar un nuevo elemento virtualDirectory al elemento primario de la aplicación.
Editar - Visual Studio 2015
Si está buscando el archivo applicationHost.config y está usando VS2015, lo encontrará en:
fuente
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 la "URL del proyecto", cambie la url usando el número de puerto a uno que le convenga. Por ejemplo, eliminé el número de puerto y agregué "/ MVCDemo4" después del localhost.
4. Haga clic en el botón "Crear directorio virtual".
5. Ejecute su proyecto y se utilizará la nueva URL
fuente
Si está utilizando Visual Studio 2013 (puede requerir la 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 descritos aquí.
fuente
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 sabe utilizar.
fuente
Tenía algo más, los archivos en sí mismos eran inaccesibles en un entorno SBS.
Elimine los archivos en la carpeta de configuración (si no puede abrirlos) y reemplácelos con una copia de la carpeta en su propia PC local.
Lo arregló para mí :)
fuente
Tuve que hacer la entrada en el archivo [proyecto] .vs \ config \ applicationhost.config.
Antes de esto, funcionaba desde la implementación pero no desde el código.
fuente
En respuesta a la siguiente pregunta:
Nunca encontré una respuesta coherente a esto en ningún lado, pero luego descubrí que podría hacerlo con un evento posterior a la compilación utilizando la tarea XmlPoke en el archivo del proyecto para el sitio web:
Puede utilizar esta técnica para volver a señalar cualquier cosa en el archivo antes de que IISExpress se inicie. Esto le permitiría forzar inicialmente un archivo applicationHost.config en GIT (suponiendo que gitignore lo ignore) y luego volver a señalar todas las rutas en el momento de la compilación. GIT ignorará cualquier cambio en el archivo, por lo que ahora es fácil compartirlos.
En respuesta a la siguiente pregunta sobre cómo agregar otras aplicaciones en un sitio:
Puede crear el sitio en el archivo de hosts de la aplicación como el de su servidor. Por ejemplo:
Luego use la técnica anterior para cambiar las ubicaciones de las carpetas en el momento de la compilación.
fuente