0
asp.net에서 디렉토리를 삭제하면 응용 프로그램이 다시 시작되고 모든 세션이 손실되고 캐시가 지워집니다. 그래서 다음 해결책을 찾았습니다. 나는 Application_Start
의 Global.asax
에 다음 코드를 입력하여 응용 프로그램 풀 재활용을 비활성화하지만 사용하지 않는 경우가 있습니다. 왜? 당신 수 없습니다디렉터리를 삭제 한 후 응용 프로그램을 다시 시작하지 않도록 설정하는 방법 ASP.NET 4에서?
System.Reflection.PropertyInfo p = typeof(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[] { });
응용 프로그램 풀이 재활용 될 수있는 여러 가지 이유가 있으며 그 중 일부는 비활성화 할 수 없습니다. 올바른 해결책은 실제로 응용 프로그램을 사용하지 않도록 설정하는 대신 재활용하는 것이 좋습니다. –
올바른 해결책은 응용 프로그램 루트 아래의 디렉토리를 삭제하는 것이 아닙니다. –
이 코드는 종종 올바르게 작동합니다. – shiva