ASP.NET içerisinde Web.Config Inheritance'ı engellemek.

0 dakikada yazıldı

8414 defa okundu

Düzenle

Herhangi bir web sitesine bir ASP.NET uygulaması yerleştirdiğinizde
otomatik olarak uygulama ile beraber Web.Config dosyasını da sunucuya
yerleştirmiş olursunuz. Bazı durumlarda (benim blogda olduğu üzere)
birden çok ASP.NET uygulamasını tek bir alan adı altında çalıştırmanız
gerekebilir. Bu uygulamaları iç içe klasörlerle ayırmak vs pek işe
yaramaz çünkü kök klasörde bulunan Web.Config içerisinde tüm ayarlar alt
klasörleri de otomatik olarak etkiler. Yani bir "inheritance" durumu söz
konusudur.

Kök dizindeki Web.Config içerisindeki tüm ayarları tek tek iç
dizinlerdeki Web.Config'ler içerisinde "remove" etmek mümkün fakat çok
zahmetli bir iş. Diğer yandan bazı durumlarda farklı ASP.NET sürümlerini
de aynı site içerisinde kullanmak isteyebilirsiniz, örneğin benim blog
ASP.NET 2.0 kullanırken aktivite kayıt uygulamam ASP.NET 3.5 ile
hazırlandı.

İşin kolayı!

Herhangi bir Web.Config dosyası içerisindeki ayarları "inheritance"
ile alt klasörlerini geçmesini istemiyorsanız aslında yapacağınız çok
ufak bir ayar var.

<location
path="." inheritInChildApplications="false">

<system.web>

<!--Tüm
ayarlar burada
-->

</system.web>

</location>

Web.Config dosyanız içerisinde tüm ayarların bulunduğu
System.Web taglarını ayrıca bir location tagı içerisine alarak
söz konusu location tagının da inheritInChildApplications
özelliğini False olarak ayarlarsanız artık kök dizindeki ayarlarınız
diğer dizinler tarafından kullanılmayacaktır. Böylece rahatlıkla yeni
uygulamalarınızı aynı alan adına yükleyebilirsiniz.

Hepinize kolay gelsin...