2011-08-04 23 views
142

Bir web.config dosyasındaki bir ASP.NET uygulamasında appSettings ve connectionStrings gibi bazı yapılandırmalar file ve configSource özniteliklerini destekler.ASP.NET web.config: configSource ve dosya öznitelikleri

file -attribute ile configSource -attribute arasındaki fark nedir? Hangi özelliği kullanmalı ve ikisini de ne zaman kullanmalısınız?

<?xml version="1.0"?> 
<configuration> 
    <appSettings file="AppSettings.config"> 
    </appSettings> 
    <connectionStrings configSource="ConnectionStrings.config">  
    </connectionStrings> 
    <!-- ... --> 
</configuration> 

cevap

229

file nitelik

file ayrıntının web.config dosyasının appSettings girişi yapmak gibi özel ayarlar içeren harici dosyayı belirtir beri. Bu arada, configSource özniteliğinde belirtilen dış dosya, configSource için bildirdiğiniz bölümün ayarlarını içerir. Örneğin, sayfalar bölümünün configSource özniteliğini kullanırsanız, dış dosya sayfalar bölümü ayarlarını içerecektir. dosya Özellikte specifified dış config ilan

özel ayarlar bölüm web.config dosyasında AppSettings'i ayarlardan ile birleştirilecektir. Bu arada, configSource birleştirme işlemini desteklemiyor, bu, tüm bölüm ayarlarını dış dosyaya taşımanız gerektiği anlamına gelir.

http://www.codeproject.com/Messages/1463547/Re-difference-between-configSource-and-file-attrib.aspx

+7

Ayrıca "Dosya" özelliği farklı siteler arasında ortak ayarları paylaşımı için önemli olan acil dizin ağacının dışında dosyaları belirlemenizi sağlar. Ne yazık ki, "configsource" özniteliği sizi currrent ağacındaki dosyalara kısıtlar, bu yüzden paylaşılan ayarlar için IIS'de bir sanal dizin belirtmeniz gerekir. –

+6

Yukarıdaki yorumum tamamen doğru değildi ve bunu düzenlemek için biraz keyfi beş dakikalık bir pencereyi kaçırdım! IIS'de "configsource" dosyalarının doğrudan dizin ağacının dışında yaşamanıza izin vermek için bir sanal dizin ayarlayamazsınız. Yani bu gerçekten oldukça sınırlayıcı. Bir bağlantı noktası (veya NTFS sabit bağlantı) kullanarak çözdüm ama tam olarak değil ... –

+0

WAO! Büyük cevap ... Bu gerçekten bana yardımcı oldu: 'belirtilen dosyayı değiştirirken web uygulamasının yeniden başlatılmasına neden olmaz. Özel bir bölüm için harici dosyadaki herhangi bir ayarı değiştirirken yeniden başlatmaya ihtiyacım var ve böylece gidilecek yol 'configSource' ile. İlginç olan 'dosya' kullanıyorum ve farklı bölümler çalışıyordu. 'file', ayrıca appSettings 'dışındaki bölümler için de çalışır ancak cevapta iyi açıklanmış olan varlıklar vardır. –