2010-05-11 12 views
18

Ich möchte meinen System.ServiceModel Abschnitt der web.config in eine separate Datei trennen, um einige Umgebungseinstellungen zu erleichtern. Meine Bemühungen waren fruchtlos. Wenn ich es mit dieser Methode versuche. Der wcf Code löst eine Ausnahme: „Die Typeninitialisierer für‚System.ServiceModel.ClientBase 1 eine Ausnahme ausgelöst Kann mir jemand sagen, was ich falsch macheKann ich system.serviceModel in eine separate .config-Datei aufteilen?

Web.config.?

<configuration> 
    <system.serviceModel configSource="MyWCF.config" /> 
    .... 

MyWCF. config:

<system.serviceModel> 
    <extensions> 
     ... 
    </extensions> 

    <bindings> 
     ... 
    </bindings> 

    <behaviors> 
     ... 
    </behaviors> 

    <client> 
     ... 
    </client> 

    </system.serviceModel> 

Antwort

32

Sie können nicht „externalisieren“ die <system.serviceModel> Gruppe Abschnitt - da es sich um eine Konfigurationsabschnitt Gruppe ist - aber Sie jedes der Bits innerhalb es auf jeden Fall externalisieren kann:

<system.serviceModel> 
    <behaviors configSource="behaviors.config" /> 
    <bindings configSource="bindings.config" /> 
    <extensions configSource="extensions.config" /> 
    <client configSource="client.config" /> 
    <services configSource="services.config" /> 
</system.serviceModel> 

In .NET-Konfigurationssystem, jede Konfigurationsabschnitt kann externalisiert werden - jeder Konfigurationsabschnitt hat ein configSource Attribut (auch wenn Visual Studio manchmal beschwert und das Gegenteil behauptet ...) - aber nicht Konfigurationsabschnittsgruppen.

Leider sind diese beiden schwer zu unterscheiden - Sie müssen die MSDN-Bibliothek oder Dokumentation zu Rate ziehen.

Sie sollten auch Jon Ristas dreiteilige Serie über das .NET-Konfigurationssystem auf CodeProject ausprobieren.

Sehr empfehlenswert, gut geschrieben und sehr hilfreich!

+1

Netter Tipp ... Dieser Abschnitt kann sehr voll werden. – JoeGeeky

Verwandte Themen