Dienstag, 23. März 2010

Directory.Delete(...) beendet Sessions

Führt man einem ASP.Net-Projekt ein Directory.Delete(...) aus, werden alle Sessions zerstört. Da ich mit UpdatePaneln arbeite, dauert es eine Weile bis ich den eigentlichen Fehler gefunden habe.

Um das zerstören der Sessions zu verhindern, kann man in der Application_Start in der Global.asax folgenden Code einfügen:


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[] { });


Quelle: http://dotnetslackers.com/Community/blogs/haissam/archive/2008/11/12/disable-session-expiration-when-using-directory-delete.aspx

Keine Kommentare: