2010-01-04 2 views
5

Je développe un projet asp.net et je n'ai pas encore de très long fichier web.config (plus de 400 lignes). mais avec ce nibernate log4net et urlrewrites. il devient de plus en plus gros. existe-t-il un moyen approprié de diviser web.config en morceaux. comme nhibernate.config et log4net.config ofcourse urlrewrite.configdivide web.config

Répondre

20

system.webServer est une section de configuration groupe - vous ne pouvez pas extérioriser cela.

Vous pouvez uniquement placer configSource = sur une configuration section - par ex.

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

Qu'est-ce qu'un groupe de section de configuration ou une section de configuration régulière ne peut être déterminé en examinant la documentation de ces choses (et même alors, il est souvent très facile à comprendre que ce soit une section ou d'un groupe de section : _(.)

+1

J'ai eu le même problème avec system.ServiceModel et c'est en effet un groupe Section: http: //msdn.microsoft.com/en-us/library/system.servicemodel.configuration.servicemodelsectiongroup.aspx – odalet

+0

La section ** runtime ** accepte volontiers l'attribut configSource mais *** ne lit pas le fichier externe *** – Kiquenet

1

Ceci est possible en utilisant l'attribut configSource des sections racine dans le fichier de configuration. C'est en fait une caractéristique du système de configuration .NET, donc cela peut être fait dans n'importe quel fichier de configuration web ou app.

Voici un blog post qui décrit assez bien cette fonctionnalité.

+0

Je viens d'essayer ça pour la balise system.webserver, elle inclut la plupart des urlrewrite et maintenant je reçois "Attribut non reconnu 'configSource'" –

+0

Oui, c'est un problème system.webServer n'est pas un Cependant, vous devriez être capable d'utiliser configSource sur n'importe lequel de ses éléments enfants – joshperry