2010-01-04 17 views
5

Estoy desarrollando un proyecto asp.net y todavía no tengo un archivo web.config muy largo (más de 400 líneas). pero con este nhibernate log4net y urlrewrites. es cada vez más grande. ¿Hay una forma adecuada de dividir web.config en pedazos? como nhibernate.config y log4net.config por supuesto urlrewrite.configdividir web.config

Respuesta

20

system.webServer es una sección de configuración grupo - no se puede externalizar eso.

Solo puede poner configSource = en una configuración sección - p.

<system.webServer> 
    <validation configSource="validation.config"/> 
    <modules configSource="modules.config" /> 
    <handlers configSource="handlers.config" /> 
</system.webServer> 

¿Qué es un grupo de secciones de configuración o una sección de configuración normal sólo puede determinarse observando la documentación para esas cosas (e incluso entonces con frecuencia no es muy fácil de averiguar si se trata de una sección o de un grupo de secciones :-().

+1

Tuve el mismo problema con system.ServiceModel y también es un grupo de sección: http: //msdn.microsoft.com/en-us/library/system.servicemodel.configuration.servicemodelsectiongroup.aspx – odalet

+0

La ** sección de tiempo de ejecución ** acepta felizmente el atributo configSource pero *** no lee el archivo externo *** – Kiquenet

1

Esto es posible mediante el uso del atributo configSource de secciones raíz en el archivo de configuración. Esta es en realidad una característica del sistema de configuración .NET, por lo que se puede hacer en cualquier archivo de configuración web o de aplicación.

Aquí hay un blog post que describe esta característica bastante bien.

+0

Acabo de probar eso para la etiqueta system.webserver. Incluye la urlrewrite en su mayoría. Y ahora estoy obteniendo el "atributo no reconocido 'configSource'" –

+0

Sí, eso es un problema. System.webServer no es un la sección de configuración estándar en sí misma. Sin embargo, debería poder usar configSource en cualquiera de sus elementos secundarios. – joshperry