ASP.NET 2.0 Web Uygulamasında Alt Dizinlerin Programatik Silinmesi Sonucu Session Bilgilerinin Kaybolması

ASP.NET 2.0 Web Uygulamasında alt dizinlerden birini yada birkaçını programatik olarak sildiğinizde ASP.NET Runtime dizin ve dosyaları izleyerek uygulamanın değiştiğini düşünüp uygulamayı yeniden derliyor. Bu değişiklikleri App_Data dizininde yapsanız dahi aynı sorun devam ediyor. Tabi bu sırada oluşturululan session bilgileri de kayboluyor. Bu durum Microsoft a bug olarak iletilmiş ve şöyle bir çözüm bulunmuş.

Global.asax dosyasında  Application_Start prosedürü içine aşağıda kodu ekleyin.

PropertyInfo p = typeof(System.Web.HttpRuntime).GetProperty("FileChangesMonitor", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);

object o = p.GetValue(null, null);

FieldInfo f = o.GetType().GetField("_dirMonSubdirs", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.IgnoreCase);

object monitor = f.GetValue(o);

MethodInfo m = monitor.GetType().GetMethod("StopMonitoring", BindingFlags.Instance | BindingFlags.NonPublic);

m.Invoke(monitor, new object[] { });

Bu kod sayesinde Root dizindeki klasör değişiklileri izlenmiyor ancak kodlarda yapacağınız değişikler ve bin dizinindeki referans değişiklikleri gibi uygulamanın çalışmasını etkileyen klasör ve dosyalar izlenmeye devam ediliyor.

 

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestShare on RedditDigg thisEmail this to someonePrint this page

Post Author: mustafaozcan

ASP.NET 2.0 Web Uygulamasında Alt Dizinlerin Programatik Silinmesi Sonucu Session Bilgilerinin Kaybolması” için bir yorum

  • Tolga Ateşer

    (6 Haziran 2008 - 01:48)

    Üstad hayırlı uğurlu olsun,burada ve senden çok faydalı bilgiler edineceğimden eminim, devamını sabırsızlıkla bekliyorum.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir