Pregunta

Sé que hay al menos dos enfoques para aprovechar el archivo web.config:

Ahora, mi problema es que ambos enfoques funcionan bien solo para rutas físicas . Pero necesito direccionar un archivo de configuración que está en un directorio virtual .

¿Qué otro método podría usar para poner mis recursos de configuración en un directorio virtual?

Nota: Quiero hacerlo de esta manera, porque tengo varias instancias de mi aplicación web en el mismo servidor (y en muchos servidores). Para mantener la implementación fácil y limpia, quiero mantener un directorio para todos los archivos (aspx, ascx, imágenes, css, js, etc.) y apuntar las aplicaciones web en IIS para diferentes clientes (= dominios, https, etc.) para esto Directorio único. En cada web de IIS, tendría un directorio virtual llamado "personalizado". que apunta a una carpeta diferente para cada web.

Actualización: me gustaría señalar que este directorio virtual " personalizado " no es adecuado para contener un web.config heredado: ese web.config sería válido solo para la carpeta personalizada que no contiene archivos aspx / ascx.

¿Fue útil?

Solución

Tengo el mismo escenario y después de leer tu publicación me di cuenta de que asp.net no te permitirá hacer esto por varias razones de seguridad.

Por lo tanto, recurrí al sistema operativo para encontrar un equivalente a la función de enlace suave de Linux que a su vez me llevó a Utilidad de unión de sysinternals. Esto puede crear un directorio que en realidad es cualquier otro directorio en ese volumen y asp.net no puede notar la diferencia y por eso carga las secciones de configuración que no están realmente en un subdirectorio de su sitio web. Funciona para mí :)

Otros consejos

Los directorios virtuales se pueden configurar como aplicaciones, y puede colocar otro web.config allí.

Heredará cualquier cambio de la configuración principal, y puede agregar configuraciones personalizadas en él.

Estaba buscando hacer lo mismo pero no funcionó, así que decidí hacer lo contrario, ya que sabes que web.config se puede heredar, así que apunté a IIS a una carpeta que contiene la configuración del cliente (cadena de conexión , ruta de archivo, etc.) y los archivos del sitio web los puse en un directorio virtual con el resto de la configuración web (donde carga dll y otros archivos de aplicación necesarios) Básicamente, puedo usar los archivos del sitio web para clientes múltiples y los clientes con su propia cadena de conexión de base de datos y otras configuraciones específicas del cliente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top