Enterprise Library CacheFactory.GetCacheManager
Null Referans Yapılandırma Hatalarının Giderilmesi
Eski yazılım çerçevelerinin sürümlerinden uygulamaları yükseltirken, geliştiriciler genellikle null referans istisnalarına yol açabilecek yapılandırma sorunlarıyla karşılaşırlar. Bir yaygın senaryo, Enterprise Library Caching block
‘un 1.1 sürümünden 2.0 sürümüne geçerken ortaya çıkar. CacheFactory.GetCacheManager
‘ı çağırırken bir null referans hatası ile karşılaşırsanız, yalnız değilsiniz. Altındaki sorunu keşfedelim ve bu yapılandırma sorunlarını etkili bir şekilde nasıl çözebileceğinizi inceleyelim.
Sorunu Anlama
Zaten bildiğiniz gibi, Enterprise Library 1.1
‘den 2.0
‘a geçiş, yapılandırma yönetiminin nasıl ele alındığı konusunda önemli değişiklikler içermektedir. Önceki sürümde, yapılandırma genellikle ConfigurationManagerSectionHandler
aracılığıyla yönetiliyordu. Ancak, bu yaklaşım .NET 2.0
‘da mevcut olan daha sade yerleşik yapılandırma mekanizmaları lehine geçerliliğini yitirmiştir.
Spesifik Sorun
Sizin durumunuzda, zorluk yapılandırmanın çeşitli dosyalar arasında bölünmesinden kaynaklanıyor gibi görünüyor. Bu değişiklik, .NET çekirdeğinin gerekli yapılandırma ayarlarını bulamamasına yol açabilir ve bu da önbellek yöneticisine erişmeye çalışırken bir null referans istisnası fırlatabilir.
Çözüm: CacheManager’ı Harici Yapılandırma Dosyalarıyla Yapılandırma
İyi haber! Enterprise Library Caching block
‘u harici yapılandırma dosyalarıyla yapılandırmak, gerekli sözdizimini kavradığınızda oldukça basittir. İşte yapılandırmanızı doğru bir şekilde ayarlamanıza yardımcı olacak adım adım bir yaklaşım.
Adım 1: Web.config
Dosyanızı Değiştirin
Başlamak için, ana Web.config
dosyanızda harici yapılandırma kaynağını belirtmeniz gerekecek. İşte nasıl yapacağınız:
<cachingConfiguration configSource="cachingconfiguration.config" />
Adım 2: Harici Yapılandırma Dosyasını Oluşturun
Sonra, cachingconfiguration.config
adlı bir harici yapılandırma dosyası oluşturacaksınız. İşte kullanabileceğiniz örnek bir yapı:
<?xml version="1.0" encoding="utf-8"?>
<cachingConfiguration defaultCacheManager="Varsayılan Önbellek Yöneticisi">
<backingStores>
<add name="inMemory" type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching" />
</backingStores>
<cacheManagers>
<add name="Varsayılan Önbellek Yöneticisi" expirationPollFrequencyInSeconds="60" maximumElementsInCacheBeforeScavenging="50" numberToRemoveWhenScavenging="10" backingStoreName="inMemory" />
</cacheManagers>
</cachingConfiguration>
Adım 3: Yapılandırmenizi Doğrulayın
-
Dosya Referanslarını Kontrol Edin:
cachingconfiguration.config
dosyasının projenizde doğru bir şekilde referanslandığından ve uygulamanızın erişebileceği doğru dizinde veya klasörde bulunduğundan emin olun. -
Uygulamayı Test Edin: Değişiklikleri yaptıktan sonra, uygulamanızı tekrar çalıştırarak null referans hatalarının devam edip etmediğini kontrol edin. Eğer dosya uygulama dizininin dışındaysa gerekli izinlerin ayarlandığından emin olun.
Adım 4: Gerekirse Daha Fazla Sorun Giderin
Eğer hâlâ sorunlarla karşılaşırsanız:
- Yapılandırma dosyalarınızdaki XML sözdiziminin uygunluğunu bir kez daha kontrol edin.
- Önbellek yöneticilerinin ve backing store isimlerinin yazım hatalarını kontrol edin.
- Tüm gerekli yapılandırmaların ayarlandığından emin olmak için orijinal belgelere başvurun.
Sonuç
Enterprise Library 1.1
‘den 2.0
‘a yapılandırma taşımak göz korkutucu görünebilir, ancak bu açık adımlarla, yaygın tuzaklardan kaçınabilir ve uygulamalarınızdaki potansiyel null referans istisnalarını çözebilirsiniz. Unutmayın, başarılı bir geçişin anahtarı, yapılandırma dosyalarınızın doğru bir şekilde ayarlanmış ve uygun bir şekilde referanslanmış olmasını sağlamaktır.
Bu rehberi benzer zorluklarla karşılaşan diğer geliştiricilerle paylaşmaktan çekinmeyin, böylece null referans hatalarının getirdiği baş ağrısından kaçının!