删除、移动、修改文件导致ASP.NET session 失效,解决方案

1、参考 stackoverflow

  http://stackoverflow.com/questions/2248825/asp-net-restarts-when-a-folder-is-created-renamed-or-deleted

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

的解释,这事asp.net 的自我回收机制,属于正常现象;解决方法有两中:


a、 需要删除的文件,不要放在根目录下,或者说工程目录下,避免触发回收机制

b、 新建Global.asax 在Application_Start() 中添加如下代码:

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

要添加  using System.Reflection;

别问我,代码是神马意思,我只是大自然的搬运工!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容