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.