Bağlantı dizileri durumunda, paylaşılan bir dosyaya işaret etmek gerçekten mümkündür. Paylaşılan dosya bir ağ UNC üzerindeyse, uygulamanın barındırılacağı makinede yönetici ayrıcalıkları gerektirir.
Çözüm: web.config dosyanızda, yerel bir yapılandırma dosyasına işaret etmek için configSource'u kullanın. .Net kısıtlamaları nedeniyle, bu, kök yapılandırma dosyası düzeyinde veya altında olmalıdır. Sadece uygulama klasöründeki bir dosyaya işaret ediyorum:
<connectionStrings configSource="ConnectionStrings.config" />
Uygulama havuzu kullanıcısı tarafından erişilebilen paylaşılan bir konumda, paylaşılan bağlantı dizelerini içeren yapılandırma dosyasını ekleyin. Bu dosya, connectionStrings bölümünün kendisi dışında herhangi bir xml içermemelidir. Paylaşılan ConnectionStrings.config dosyası şu şekilde görünür:
<connectionStrings>
<clear/>
<add name="connString1" connectionString="connString1 info goes here"/>
<add name="connString2" connectionString="connString2 info goes here"/>
</connectionStrings>
Şimdi numara. Uygulama klasörünüzde harici, paylaşılan yapılandırma dosyasına işaret eden bir Windows sembolik bağlantısı oluşturun. Bunu yapmak için yönetici ayrıcalıklarına ihtiyacınız olacak:
mklink ConnectionStrings.config \\someServer\someShare\someFolder\ConnectionStrings.config
.Net'i zekice aştık. Yapılandırma sistemi, ConnectionStrings.config adlı yerel bir dosyadaki bağlantı dizelerini bulmak için configSource ayarını kullanır. Sembolik bağ, .Net'e bir dosya gibi görünür ve sembolik bağ, paylaşılan yapılandırma dosyasına çözümlenir.
Uyarılar: Paylaşılan dosyadaki değişiklikler .Net'te bir uygulamanın yeniden başlatılmasını otomatik olarak tetiklemez. IIS durumunda, web sitesi veya uygulama havuzunun manuel olarak yeniden başlatılması gerekecektir.
Sembolik bağlantıyı oluşturmak için yönetici ayrıcalıklarına duyulan ihtiyaç nedeniyle, bu yaklaşım herkes için işe yaramayabilir. Paylaşılan dosya aynı mantıksal sürücü üzerindeyse işe yarayabilecek ilgili iki alternatif vardır - sabit bağlantılar ve bağlantılar. Daha fazla bilgi için bu tartışmaya ve bu tartışmaya bakın.