2008-09-03 14 views
6

Bağlantılarımı genellikle web.config dosyasında veya Visual Studio projemin uygulama ayarlarında saklarım. Şu anda üzerinde çalıştığım uygulama, veritabanına her seferinde yapılan bağlantılara bakacak kadar çok yolculuk yapıyor. Bağlantıları önbellekte koymalı mıyım yoksa tüm SqlConnection nesnesini önbelleğe almayı ve onları her zaman açıp kapatmamayı engellemeye mi çalışmalıyım?Veritabanı bağlantılarınızı nerede saklıyorsunuz?

Güncelleme: konsensüs bir yapılandırma dosyasında bağlantı dizesini depolamak ve bir yapılandırma dosyasında tutun ADO.NET

cevap

4

ben yerleşik bağlantı havuzu yenilgiye uğratacak bağlantı nesnesi, önbelleğe söyledi Ne - ADO.NET bağlantılarını idare edecek tek başına verimli (başlatmanızı ve onları kapatın varsayarak) .

Bağlantı dizgisinin kendisi olarak, bağlantıyı yüklerseniz önbelleğe almanız gerekmez; .NET 2.0 çerçevesindeki bağlantı yöneticisi nesnesi, ilk eriştiğinizde yapılandırmayı belleğe yükler; dosya sistemine hiçbir tekrar gezisi yoktur.

0

güvenen elinde önbelleğe bırakmaktır gibi görünüyor. NHibernate veya Linq to Sql gibi araçlar tarafından sağlanan sağlam bir veri erişim stratejisi kullanın.

0

Ne hatırlayabildiğim .config dosyasının içeriği zaten bellekte tutulur ... Size geri döneceğim.

Düzenleme: HE

1

Genelde uygulama dizgisinde genel bir yapılandırma nesnesindeki bağlantı dizesini önbelleğe alıyorum. Bu değer her zaman saklandığı yerden program yürütme başlangıcına yüklenir - dosya, şifrelenmiş dosya, yapılandırma dosyası, vb. ADO.NET, SqlConnection nesnesini önbelleğe almamak için bağlantı nesnelerini veritabanına önbelleğe almada çok iyidir .

3

Web.config dosyası önbelleğe alınır. Ama olmasa bile, ado.net'in bağlantı havuzunu koruduğunu unutmayın - db'ye her çağrı yaptığınızda yeni bir bağlantı açmıyor.

0

Olası bir çözüm: İlk şifrelenmiş bağlantı dizesini (Web.Config veya App.Config dosyasında), kimlik doğrulama için yalnızca bir saklı yordamı çalıştırmasına izin verilen bir oturum için saklayın. Daha sonra girişi dinamik olarak db'deki bir yapılandırma tablosunda saklanan şifrelenmiş değerlerden değiştirin.

İlgili konular