2011-12-16 8 views
7

Tenemos un gran sistema de administración de contenido configurado como el sitio principal en IIS. También tenemos un puñado de aplicaciones independientes que están configuradas como aplicaciones bajo IIS 7.5. El problema al que nos enfrentamos es que las aplicaciones secundarias heredan el archivo web.config de la aplicación principal a pesar de que son aplicaciones completamente independientes y se comparten al lado de las configuraciones sin configuración. Idealmente, nos gustaría evitar que las aplicaciones secundarias hereden el archivo web.config. ¿Es eso posible?Descarga de partes de un archivo web.config desde una aplicación secundaria

De lo contrario, nos gustaría indicar a las aplicaciones secundarias que no hereden partes del archivo master web.config. Hemos intentado editar los archivos secundarios web.config y agregar directivas al archivo de configuración, pero parece que no funciona.

Entiendo que podemos modificar el archivo principal web.config para agregar directivas para restringir efectivamente la herencia; sin embargo, dudamos en hacer esto porque no estamos seguros de cómo afectará eso al CMS. El archivo web.config en cuestión también tiene alrededor de 1000 líneas y no estamos seguros de cuántos cambios habría que hacer. Por supuesto, podemos avanzar con esta solución y probarla a fondo, pero prefiero encontrar una que no requiera modificar la aplicación principal.

También hemos intentado actualizar los archivos secundarios web.config para eliminar manualmente ciertos elementos del web.config principal y hemos tenido resultados mixtos. Podemos descargar manejadores HTTP y cosas así, pero parece que no podemos descargar ninguna de las referencias a la carpeta App_Code.

En resumen, ¿es posible tener una aplicación secundaria NO hereda ninguna parte del archivo web.config? Si no es así, ¿es posible sobrescribir o forzar al niño a ignorar la configuración en el archivo web.config principal?

Gracias

de Dave

+0

¿Puede dar más información acerca de su referencia a la carpeta App_Code? ¿En qué sección está? Mejor si solo puede incluir ese fragmento en su pregunta para que podamos ver. –

Respuesta

0

Añadir <clear/> al comienzo de una sección para deshacerse de valores heredados.

+0

Parte del mensaje se eliminó de mi publicación original. Se suponía que debía decir "Hemos intentado editar los archivos child web.config y agregar las directivas' 'al archivo de configuración, pero eso no parece funcionar". y "Entiendo que podemos modificar el archivo principal web.config para agregarlo en las directivas' 'para restringir efectivamente la herencia; sin embargo ..." –

+1

¿Dónde agregaste ''? AFAIK tiene que estar debajo de cada sección que quieras borrar. Poniéndolo bajo '' o '' funcionaría; poniéndolo bajo '' o '' does _not_. – pdubs

+0

Intenté ambos enfoques. El '' parece funcionar para descargar cosas como los controladores HTTP, pero tenemos esta molesta llamada a la carpeta App_Code en el principal web.config y el '' no está funcionando para esa sección. –

10

Además de usar <clear/> o sobrescribir la configuración en el elemento secundario web.config, puede usar la configuración inheritInChildApplications junto con en el elemento web principal webconfig.

Ejemplo:

<location path="." inheritInChildApplications="false"> 
    <system.web>  
    <!-- ... --> 
    </system.web> 
</location> 

Usted puede envolver alrededor de la ubicación de las secciones enteras o <system.web> a la vuelta específicos.

Algunos enlaces para obtener más información:

1

Esta es una Una solución temporal, pero lo que hacemos para las aplicaciones de polígot es revertir el proxy a cualquier cosa que no pueda vivir en la web.config de los padres. Mucho más fácil que luchar en la mayoría de los casos.

Ahora, esta aplicación de intranet parece que podría estar usando la autenticación de Windows, si es así no funcionará ya que no puede revertir la autenticación de las ventanas proxy.

Cuestiones relacionadas