我有代码,我将文件移动到另一个文件夹并删除 ASP.NET 应用程序中以前的文件夹和文件。删除文件夹后,我的会话已过期。如何限制会话值过期。
问问题
1873 次
3 回答
3
非常真实。发生这种情况是因为删除会更改 ASP.NET 应用程序的文件夹树,这会迫使应用程序回收。见这里:http ://www.geekays.net/post/2008/10/14/ASPNET-webdomain-recycle-on-subfolder-changes.aspx
于 2012-05-24T09:32:12.433 回答
1
在 Global.asax 页面中使用以下代码
void Application_Start(object sender, EventArgs e)
{
System.Reflection.PropertyInfo p = typeof(System.Web.HttpRuntime).GetProperty("FileChangesMonitor", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
object o = p.GetValue(null, null);
System.Reflection.FieldInfo f = o.GetType().GetField("_dirMonSubdirs", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.IgnoreCase);
object monitor = f.GetValue(o);
System.Reflection.MethodInfo m = monitor.GetType().GetMethod("StopMonitoring", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
m.Invoke(monitor, new object[] { });
}
于 2012-09-18T07:49:31.087 回答
0
请在 globle.asax 的 Session_End 方法中编写您的目录删除代码
void Session_End(object sender, EventArgs e)
{
SampleDelete();
}
private static void SampleDelete()
{
try
{
string samplesss = AppDomain.CurrentDomain.BaseDirectory + "\\temp";
string[] array1 = System.IO.Directory.GetDirectories(samplesss);
try
{
foreach (string item in array1)
{
System.IO.Directory.Delete(item, true);
}
}
catch (Exception ex)
{ }
}
catch (Exception ex)
{
}
}
于 2015-10-29T05:11:17.110 回答