¿’Aplicación’ anidada de ASP.NET dentro de IIS que hereda los valores de configuración principales?

Actualmente tengo 2 aplicaciones web ASP.NET 3.5 x en IIS7 (llamémoslas WebParent y WebChild).

WebChild está nested dentro de la lista de WebParent en IIS7 y está configurado como una aplicación (en lugar de solo un directorio virtual dentro de WebParent). Ambos utilizan actualmente su propio grupo de aplicaciones (clásico).

Tanto WebParent como WebChild tienen sus propios archivos web.config completamente definidos en sus propios directorios raíz.

Había asumido que viendo que WebChild se define como una ‘Aplicación’ dentro de IIS, no heredaría nada del archivo de configuración de WebParent. Sin embargo, a pesar de esta configuración, estoy viendo errores relacionados con varios elementos dentro del web.config que ya están siendo definidos (que es correcto, hay un par de elementos que están en ambos archivos de configuración, pero pensé que deberían tratarse de manera completamente independiente de uno otro)?

¿Alguien puede aclarar por qué esto podría estar ocurriendo?

Si se repiten, primero tendrás que en la aplicación secundaria web.config, luego volver a agregar el elemento que te gustaría que fuera su lugar. Esto supone que le gustaría tener un valor diferente. Si no lo haces, entonces simplemente omite el elemento. Una cadena de conexión sería un buen ejemplo de algo que es común para todas las aplicaciones, por lo que solo debe especificarlo en la raíz.

Ejemplo:

        

La solución exacta a su problema dependerá del mensaje de excepción de configuración que esté viendo. Sin embargo, este es un problema típico que a menudo se puede resolver mediante el uso del atributo inheritInChildApplications en el elemento de ubicación en el web.config para “WebParent”. Al ajustar toda la sección del sistema.web en un elemento de ubicación de la siguiente manera, debería poder eliminar el problema que describió:

      

Con IIS 7, también deseará ajustar la sección system.WebServer de la misma manera:

      

Esta solución se basa en un excelente artículo de blog que encontré aquí .

Creo que inheritInChildApplications = “false” es bueno para casos en los que aún desee heredar parte de la configuración del padre. En los casos en que desee detener por completo la herencia (como en este caso, si estoy en lo correcto), sugeriría usar 2 grupos de aplicaciones separadas para las 2 aplicaciones y luego aplicar una configuración no muy bien documentada en el archivo applicationHost.config como expliqué en esta pregunta “La entrada ya ha sido añadida” – Dos grupos de aplicaciones separadas

    

Siga los consejos de Scott y también asegúrese de haber hecho clic con el botón derecho en WebChild en IIS y seleccionado Convertir a aplicación.