ASP.NET web.config: configSource ve dosya öznitelikleri


187

Bir dahilinde web.configbir ASP.NET-uygulamasında -Dosya config bazı bölümleri gibi appSettingsve connectionStrings, özellikleri destekler fileve configSource.

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

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

Yanıtlar:


300

file nitelik

configSource nitelik

fileÖzniteliği Web.config dosyasının appSettings girişi yapmak gibi özel ayarlar içeren harici dosyayı belirtir. Bu arada, configSourceöznitelikte belirtilen harici dosya configSource için bildirdiğiniz bölümün ayarlarını içerir. Örneğin configSource, sayfalar bölümünün özelliğini kullanırsanız, harici dosya sayfalar bölümü için ayarları içerir.

fileÖznitelikte belirtilen harici yapılandırmada bildirilen özel ayarlar appSettings , web.configdosyadaki bölümdeki ayarlarla birleştirilir . Bu arada, configSource yok değil birleştirme desteklemek, bu dış dosyasına bölümün tamamı ayarlarını taşımak zorunda olacağı anlamına gelir.

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


10
Ayrıca, "dosya" özniteliği, ortak dizin ağacının dışında, farklı siteler arasında ortak ayarları paylaşmak için önemli olan dosyaları belirtmenize olanak tanır. Ne yazık ki, "configsource" özniteliği sizi akım ağacı içindeki dosyalarla sınırlar, bu nedenle paylaşılan ayarlar için IIS'de bir sanal dizin belirtmeniz gerekir.
Ed Graham,

6
Yukarıdaki yorumum tamamen doğru değildi ve görünüşe göre düzenlemek için biraz beş dakikalık pencereyi kaçırdım! IIS'de "configsource" dosyalarının hemen dizin ağacının dışında kalmasına izin vermek için sanal bir dizin ayarlayamazsınız. Bu gerçekten oldukça sınırlayıcı. Bir kavşak noktası (veya NTFS sabit bağlantısı) kullanarak çözdüm ama tam olarak hoş değil ...
Ed Graham

1
WAO! Güzel cevap ... Bu gerçekten bana yardımcı: will not cause web application to restart when modifying the specified file. Özel bir bölüm için harici dosyadaki herhangi bir ayarı değiştirirken uygulamayı yeniden başlatmak için uygulamaya ihtiyacım var ve bu yüzden gitmek için yol var configSource. İlginç olan, kullandığım fileve farklı bölümlerin çalıştığıydı. filebaşka bölümler için de çalışır, appSettingsancak cevapta iyi açıklanmış olanlar var.
Leniel Maccaferri

4
Ben ConfigSource listeye eklemek istiyorum: It must refer to a file in the same directory or in a subdirectory as the configuration file.. Ve ayrıca dosya listesine: It can reside outside the directory of the configuration file itself..
frankhommers

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.