2012-09-05 12 views
5

Chcę podzielić web.config i wziąć te ustawienia w pliku zewnętrznym.Jak podzielić web.config?

<customErrors mode="Off" defaultRedirect="~/Home/ErrorPage"> 
    <error statusCode="403" redirect="~/Home/ErrorPage"/> 
    <error statusCode="404" redirect="~/Home/ErrorPage"/> 
</customErrors> 

<system.net> 
    <mailSettings> 
    <smtp deliveryMethod="Network" from="[email protected]"> 
     <network host="smtp.company.com" port="25" password="" userName=""/> 
    </smtp> 
    </mailSettings> 
</system.net> 

używam

<appSettings file="my.config"/> 

mieć swoje ustawienia na zewnątrz.

Ale co z ustawieniami standardowymi?

Odpowiedz

7

wielu (choć nie wszystkich) odcinków mają właściwość configSource, za pomocą którego można bardzo podobnie do sposobu korzystania z własności sekcji appSettingsfile.

More info at MSDN


<customErrors configSource="MyErrors.config" /> 

    <system.net> 
    <mailSettings> 
     <smtp configSource="MySmtp.config" /> 
    </mailSettings> 
    </system.net> 
+0

Dobre rozwiązanie. Dziękuję Ci! Wada polega na tym, że muszę utworzyć dwa pliki konfiguracyjne dla każdego ustawienia. – podeig

+0

Czy 'configSource' odnosi się do tego samego pliku dla wielu sekcji, czy też konieczne jest utworzenie osobnego pliku dla każdej sekcji? – crush

0

można wydzielić pewne fragmenty pliku, nie można brać wszystkiego w osobnych plikach.

Powinieneś także rozważyć, co zyskujesz w ten sposób.

+0

Jedną z korzyści jest konfiguracja środowiska bez konieczności tworzenia indywidualnych konfiguracji kompilacji dla każdego środowiska, aby skorzystać z transformacji web.config (co w rzeczywistości jest nadużyciem systemu). Możesz pozostawić te wyspecjalizowane zewnętrzne pliki konfiguracyjne w systemie środowiska i pozostaw globalną konfigurację, która może zmienić się z publikowania na publikację w głównym pliku web.config. – crush